mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-05 23:41:44 +00:00
ci: provision Rocky jobs to build+package BonsaiViewer & Rust connector
Two gaps left when BonsaiViewer and its Rust connector were newly added to the Rocky CI jobs (May–Jun), neither previously exercised there: 1. Rust: the autodesk connector was rewritten from a PyInstaller Python app to a Rust crate, so packaging/build.py now runs 'cargo build --release'. Neither Rocky workflow installed a toolchain. Add rustup (stable, matching the dedicated dtolnay/rust-toolchain@stable workflow) to both x86 and ARM. 2. ARM glibc: aqt's official Qt6 ARM binaries link glibc 2.38, which Rocky 9 (glibc 2.34) can't load — moc fails, breaking IfcViewer_autogen. Move the ARM job to Rocky 10 (glibc 2.39). The legacy arm64v8/rockylinux image stopped at 9, so use rockylinux/rockylinux:10 (multi-arch, has arm64). Rocky 10 defaults to Python 3.12 and drops python3.11, so the script-runner references move python3.11 -> python3 (system Python only runs helper scripts; ifcopenshell is built against uv's Python). Bump the ccache key to rockylinux10. x86 stays on Rocky 9 to keep its lower glibc floor for end users. The rockylinux9-arm64 build-outputs deps branch is kept as-is: Rocky 9 deps are forward-compatible on Rocky 10, and no rocky10 branch exists yet. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -30,6 +30,15 @@ jobs:
|
||||
git config --global --add safe.directory '*'
|
||||
python3.11 -c "import tkinter; print('Tk', tkinter.TkVersion)"
|
||||
|
||||
- name: Install Rust
|
||||
# The bonsaiviewer-autodesk connector is a Rust crate; the "Package
|
||||
# .zip archives" step below runs `cargo build --release` via
|
||||
# packaging/build.py. Match the dedicated connector workflow's stable
|
||||
# toolchain (dtolnay/rust-toolchain@stable).
|
||||
run: |
|
||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain stable
|
||||
echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
|
||||
|
||||
- name: Install aws cli
|
||||
run: |
|
||||
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
|
||||
|
||||
@@ -6,7 +6,11 @@ on:
|
||||
jobs:
|
||||
build_ifcopenshell:
|
||||
runs-on: ubuntu-22.04-arm
|
||||
container: arm64v8/rockylinux:9
|
||||
# Rocky 10 (glibc 2.39) — aqt's official Qt6 ARM binaries are built
|
||||
# against glibc 2.38, which Rocky 9 (glibc 2.34) can't run (moc fails to
|
||||
# load). The legacy arm64v8/rockylinux Docker image stopped at 9; Rocky 10
|
||||
# is published under the rockylinux/rockylinux namespace.
|
||||
container: rockylinux/rockylinux:10
|
||||
|
||||
steps:
|
||||
- name: Set up uv
|
||||
@@ -25,10 +29,19 @@ jobs:
|
||||
sqlite-devel bzip2-devel zlib-devel openssl-devel xz-devel \
|
||||
readline-devel ncurses-devel libffi-devel libuuid-devel git-lfs \
|
||||
findutils xz byacc patchelf libxkbcommon-devel \
|
||||
python3.11 python3.11-pip python3.11-tkinter
|
||||
python3-tkinter
|
||||
python3 -m pip install typing_extensions aqtinstall
|
||||
git config --global --add safe.directory '*'
|
||||
python3.11 -c "import tkinter; print('Tk', tkinter.TkVersion)"
|
||||
python3 -c "import tkinter; print('Tk', tkinter.TkVersion)"
|
||||
|
||||
- name: Install Rust
|
||||
# The bonsaiviewer-autodesk connector is a Rust crate; the "Package
|
||||
# .zip archives" step below runs `cargo build --release` via
|
||||
# packaging/build.py. Match the dedicated connector workflow's stable
|
||||
# toolchain (dtolnay/rust-toolchain@stable).
|
||||
run: |
|
||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain stable
|
||||
echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
|
||||
|
||||
- name: Install aws cli
|
||||
run: |
|
||||
@@ -60,7 +73,7 @@ jobs:
|
||||
- name: ccache
|
||||
uses: hendrikmuhs/ccache-action@v1.2.23
|
||||
with:
|
||||
key: ubuntu-22.04-${{ runner.arch }}-rockylinux9
|
||||
key: ubuntu-22.04-${{ runner.arch }}-rockylinux10
|
||||
|
||||
- name: Run Build Script
|
||||
shell: bash
|
||||
@@ -101,7 +114,7 @@ jobs:
|
||||
# connector.json into dist/autodesk/. Same on-disk shape as the
|
||||
# old PyInstaller flow so the symlink + zip steps below
|
||||
# continue to work unchanged.
|
||||
python3.11 src/bonsaiviewer-autodesk/packaging/build.py
|
||||
python3 src/bonsaiviewer-autodesk/packaging/build.py
|
||||
autodesk_connector_dir="$PWD/src/bonsaiviewer-autodesk/dist/autodesk"
|
||||
test -d "$autodesk_connector_dir"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user