mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-20 15:08:51 +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 '*'
|
git config --global --add safe.directory '*'
|
||||||
python3.11 -c "import tkinter; print('Tk', tkinter.TkVersion)"
|
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
|
- name: Install aws cli
|
||||||
run: |
|
run: |
|
||||||
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
|
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
|
||||||
|
|||||||
@@ -6,7 +6,11 @@ on:
|
|||||||
jobs:
|
jobs:
|
||||||
build_ifcopenshell:
|
build_ifcopenshell:
|
||||||
runs-on: ubuntu-22.04-arm
|
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:
|
steps:
|
||||||
- name: Set up uv
|
- name: Set up uv
|
||||||
@@ -25,10 +29,19 @@ jobs:
|
|||||||
sqlite-devel bzip2-devel zlib-devel openssl-devel xz-devel \
|
sqlite-devel bzip2-devel zlib-devel openssl-devel xz-devel \
|
||||||
readline-devel ncurses-devel libffi-devel libuuid-devel git-lfs \
|
readline-devel ncurses-devel libffi-devel libuuid-devel git-lfs \
|
||||||
findutils xz byacc patchelf libxkbcommon-devel \
|
findutils xz byacc patchelf libxkbcommon-devel \
|
||||||
python3.11 python3.11-pip python3.11-tkinter
|
python3-tkinter
|
||||||
python3 -m pip install typing_extensions aqtinstall
|
python3 -m pip install typing_extensions aqtinstall
|
||||||
git config --global --add safe.directory '*'
|
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
|
- name: Install aws cli
|
||||||
run: |
|
run: |
|
||||||
@@ -60,7 +73,7 @@ jobs:
|
|||||||
- name: ccache
|
- name: ccache
|
||||||
uses: hendrikmuhs/ccache-action@v1.2.23
|
uses: hendrikmuhs/ccache-action@v1.2.23
|
||||||
with:
|
with:
|
||||||
key: ubuntu-22.04-${{ runner.arch }}-rockylinux9
|
key: ubuntu-22.04-${{ runner.arch }}-rockylinux10
|
||||||
|
|
||||||
- name: Run Build Script
|
- name: Run Build Script
|
||||||
shell: bash
|
shell: bash
|
||||||
@@ -101,7 +114,7 @@ jobs:
|
|||||||
# connector.json into dist/autodesk/. Same on-disk shape as the
|
# connector.json into dist/autodesk/. Same on-disk shape as the
|
||||||
# old PyInstaller flow so the symlink + zip steps below
|
# old PyInstaller flow so the symlink + zip steps below
|
||||||
# continue to work unchanged.
|
# 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"
|
autodesk_connector_dir="$PWD/src/bonsaiviewer-autodesk/dist/autodesk"
|
||||||
test -d "$autodesk_connector_dir"
|
test -d "$autodesk_connector_dir"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user