mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-05 23:41:44 +00:00
a11ebdf8c4
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 6 to 7. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](https://github.com/actions/setup-python/compare/v6...v7) --- updated-dependencies: - dependency-name: actions/setup-python dependency-version: '7' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
186 lines
6.6 KiB
YAML
186 lines
6.6 KiB
YAML
name: ci-bonsai-daily
|
|
|
|
on:
|
|
push:
|
|
paths:
|
|
- '.github/workflows/ci-bonsai-daily.yml'
|
|
- 'src/bonsai/**'
|
|
- 'src/ifcopenshell-python/ifcopenshell/**'
|
|
- 'src/bcf/bcf/**'
|
|
- 'src/ifcclash/ifcclash/**'
|
|
- 'src/ifccobie/**'
|
|
- 'src/ifcdiff/**'
|
|
- 'src/ifccsv/**'
|
|
- 'src/ifcpatch/ifcpatch/**'
|
|
- 'src/ifc4d/ifc4d/**'
|
|
- 'src/ifc5d/ifc5d/**'
|
|
- 'src/ifccityjson/**'
|
|
branches:
|
|
- v0.8.0
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
activate:
|
|
runs-on: ubuntu-latest
|
|
if: |
|
|
github.repository == 'IfcOpenShell/IfcOpenShell'
|
|
outputs:
|
|
timestamp: ${{ steps.timestamp.outputs.timestamp }}
|
|
steps:
|
|
- name: Get current timestamp
|
|
id: timestamp
|
|
# Include hours and minutes to release tag
|
|
# to avoid possibility of unstable repo's index.json
|
|
# pointing to the new file when index.json itself wasn't yet updated.
|
|
run: echo "timestamp=$(date +'%y%m%d%H%M')" >> $GITHUB_OUTPUT
|
|
|
|
build:
|
|
needs: activate
|
|
name: ${{ matrix.config.name }}-${{ matrix.pyver }}
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
pyver: [py311, py312, py313]
|
|
config:
|
|
- {
|
|
name: "Windows Build",
|
|
short_name: win,
|
|
}
|
|
- {
|
|
name: "Linux Build",
|
|
short_name: linux,
|
|
}
|
|
- {
|
|
name: "MacOS Build",
|
|
short_name: macos,
|
|
}
|
|
- {
|
|
name: "MacOS ARM Build",
|
|
short_name: macosm1,
|
|
}
|
|
exclude:
|
|
# Python 3.13 is needed for Blender 5.1+ and Blender dropped Intel Mac support in 5.0.
|
|
- pyver: py313
|
|
config:
|
|
short_name: macos
|
|
steps:
|
|
- uses: actions/checkout@v7
|
|
- uses: actions/setup-python@v7 # https://github.com/actions/setup-python
|
|
with:
|
|
architecture: 'x64' # optional x64 or x86. Defaults to x64 if not specified
|
|
python-version: '3.11'
|
|
- name: Get current version
|
|
id: version
|
|
run: echo "version=$(cat VERSION)" >> $GITHUB_OUTPUT
|
|
- name: Compile
|
|
run: |
|
|
cd src/bonsai && make dist PLATFORM=${{ matrix.config.short_name }} PYVERSION=${{ matrix.pyver }}
|
|
- name: Find zip file name
|
|
id: find_zip
|
|
run: |
|
|
filepath=$(ls src/bonsai/dist/bonsai_*.zip)
|
|
echo "filepath=$filepath" >> $GITHUB_OUTPUT
|
|
echo "filename=$(basename $filepath)" >> $GITHUB_OUTPUT
|
|
- name: Upload zip file to release
|
|
uses: svenstaro/upload-release-action@v2
|
|
with:
|
|
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
|
file: ${{ steps.find_zip.outputs.filepath }}
|
|
asset_name: ${{ steps.find_zip.outputs.filename }}
|
|
release_name: "bonsai-${{steps.version.outputs.version}}-alpha${{ needs.activate.outputs.timestamp }} (unstable)"
|
|
tag: "bonsai-${{steps.version.outputs.version}}-alpha${{ needs.activate.outputs.timestamp }}"
|
|
overwrite: true
|
|
body: "See README in https://github.com/IfcOpenShell/bonsai_unstable_repo/ on how to setup autoupdates for daily Bonsai builds."
|
|
|
|
update-extensions-repo-and-run-tests:
|
|
needs: [build]
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout bonsai_unstable_repo repository
|
|
uses: actions/checkout@v7
|
|
with:
|
|
repository: IfcOpenShell/bonsai_unstable_repo
|
|
token: ${{ secrets.IFCOPENBOT_TOKEN }}
|
|
path: bonsai_unstable_repo
|
|
|
|
- name: Download Blender and run critical tests
|
|
run: |
|
|
# Ensure Bonsai and ifcsverchok enable/disable works before uploading to extensions repo.
|
|
|
|
# Download Blender.
|
|
wget -q -O blender.tar.xz https://download.blender.org/release/Blender5.2/blender-5.2.0-linux-x64.tar.xz
|
|
tar -xf blender.tar.xz
|
|
|
|
# Setup Blender.
|
|
BLENDER_PATH=$(find blender-*/ -maxdepth 0 -exec readlink -f {} \;)
|
|
export PATH="$PATH:$BLENDER_PATH"
|
|
blender --version
|
|
|
|
# Setup unstable repo to get Bonsai build.
|
|
cd bonsai_unstable_repo
|
|
pip install -r requirements.txt
|
|
python setup_extensions_repo.py --last-tag
|
|
cd ..
|
|
bonsai_zip="$(pwd)/$(ls bonsai_unstable_repo/bonsai_py313*-linux-x64.zip)"
|
|
|
|
# Install Bonsai.
|
|
blender --command extension install-file -r user_default -e $bonsai_zip
|
|
blender --command extension list
|
|
|
|
git clone https://github.com/IfcOpenShell/IfcOpenShell.git IfcOpenShell
|
|
|
|
# Reregister Bonsai.
|
|
# Note that running it in background might miss some errors
|
|
# (e.g. tools are not registered in background mode).
|
|
blender --background --python IfcOpenShell/src/bonsai/scripts/reregister_bonsai.py
|
|
|
|
# Install sverchok.
|
|
wget -q -O sverchok.zip https://github.com/nortikin/sverchok/archive/refs/heads/master.zip
|
|
# ifcsverchok expecting sverchok to be named "sverchok" and not "sverchok-master".
|
|
unzip -q sverchok.zip
|
|
mv sverchok-master sverchok
|
|
zip -q -r sverchok.zip sverchok
|
|
rm -r sverchok
|
|
blender --command extension install-file -r user_default sverchok.zip
|
|
|
|
# Install ifcsverchok.
|
|
cd IfcOpenShell/src/ifcsverchok
|
|
make dist
|
|
sverchok_zip="$(pwd)/dist/$(ls dist)"
|
|
blender --command extension install-file -r user_default $sverchok_zip
|
|
|
|
- name: Update index.json on extensions repo
|
|
run: |
|
|
set -x -e
|
|
|
|
# Setup Blender.
|
|
BLENDER_PATH=$(find blender-*/ -maxdepth 0 -exec readlink -f {} \;)
|
|
export PATH="$PATH:$BLENDER_PATH"
|
|
blender --version
|
|
|
|
cd bonsai_unstable_repo
|
|
git config --global user.name 'IfcOpenBot'
|
|
git config --global user.email 'IfcOpenBot@users.noreply.github.com'
|
|
git add index.json
|
|
git add readme.md
|
|
git commit -m "Update index.json"
|
|
git push
|
|
|
|
- name: Run bonsai tests
|
|
run: |
|
|
set -x -e
|
|
BLENDER_PATH=$(find blender-*/ -maxdepth 0 -exec readlink -f {} \;)
|
|
export PATH="$PATH:$BLENDER_PATH"
|
|
blender --version
|
|
|
|
# Install Sun Position extension.
|
|
blender --online-mode --command extension sync
|
|
blender --online-mode --command extension install --enable --sync sun_position
|
|
|
|
cd IfcOpenShell/src/bonsai
|
|
pip install -r requirements-dev.txt
|
|
blender --background --python scripts/setup_pytest.py
|
|
blender --python-expr "import bonsai; print(bonsai.bbim_semver); import ifcopenshell; print(ifcopenshell.version)" --background
|
|
make test
|