@@ -17,45 +17,78 @@ jobs:
1717
1818 build-native :
1919 runs-on : ${{ matrix.os }}
20+ continue-on-error : true
2021 strategy :
2122 matrix :
2223 os : [ubuntu-latest, ubuntu-24.04-arm, windows-latest, windows-11-arm, macos-13, macos-14]
2324 steps :
24- - uses : fox-it/dissect-workflow-templates/.github/actions/git-checkout@main
25+ - uses : actions/checkout@v4
26+ with :
27+ fetch-depth : 0
28+
29+ - run : git lfs install --local
2530
26- - if : runner.os == 'Linux' && runner.arch == 'X64'
31+ - name : Create LFS file list
32+ run : git lfs ls-files --long | cut -d ' ' -f1 | sort > .lfs-assets-id
33+
34+ - name : Cache LFS
35+ uses : actions/cache@v4
36+ with :
37+ path : .git/lfs
38+ key : lfs-${{ hashFiles('.lfs-assets-id') }}-v1
39+
40+ - name : Pull LFS
41+ run : git lfs pull
42+
43+ - name : Setup QEMU (Linux only)
44+ if : runner.os == 'Linux' && runner.arch == 'X64'
2745 uses : docker/setup-qemu-action@v3
2846 with :
2947 platforms : all
3048
31- - run : curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain stable
49+ - name : Setup Rust
50+ if : ${{ matrix.os != 'windows-11-arm' }}
51+ run : curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain stable
52+
53+ - name : Setup Rust (Windows 11 ARM)
54+ if : ${{ matrix.os == 'windows-11-arm' }}
55+ run : |
56+ Invoke-WebRequest -Uri "https://win.rustup.rs/aarch64" -OutFile "$env:TEMP\rustup-init.exe"
57+ & "$env:TEMP\rustup-init.exe" -y
58+ "$env:USERPROFILE\.cargo\bin" | Out-File -Append -Encoding ascii $env:GITHUB_PATH
59+ "CARGO_HOME=$env:USERPROFILE\.cargo" | Out-File -Append -Encoding ascii $env:GITHUB_ENV
60+ shell : pwsh
3261
33- - uses : actions/setup-python@v5
62+ - name : Setup Python
63+ uses : actions/setup-python@v5
3464 with :
35- python-version : " 3.12 "
65+ python-version : " 3.13 "
3666
37- - run : python -m pip install cibuildwheel==2.23.2
67+ - name : Install cibuildwheel
68+ run : python -m pip install cibuildwheel==2.23.2
3869
39- - run : python -m cibuildwheel --output-dir dist
70+ - name : Build wheels
71+ run : python -m cibuildwheel --output-dir dist
4072 env :
4173 CIBW_ARCHS_LINUX : ${{ runner.arch == 'X64' && 'auto ppc64le s390x' || 'auto armv7l' }}
74+ CIBW_ARCHS_WINDOWS : ${{ runner.arch == 'X64' && 'AMD64 x86' || 'ARM64' }}
4275 CIBW_BEFORE_ALL_LINUX : curl -sSf https://sh.rustup.rs | sh -s -- -y
4376 CIBW_BEFORE_ALL_WINDOWS : ${{ runner.arch == 'X64' && 'rustup target add i686-pc-windows-msvc' || '' }}
4477 # Manually install setuptools-rust to enable building native wheels
4578 CIBW_BEFORE_BUILD : >
4679 python -m pip install -U setuptools>=77.0.0 setuptools_scm[toml]>=6.4.0 setuptools-rust
4780 CIBW_BUILD_FRONTEND : " build; args: --no-isolation"
48- CIBW_CONFIG_SETTINGS : " --build-option=--py-limited-api=cp39"
81+ CIBW_CONFIG_SETTINGS : --build-option=--py-limited-api=cp39
4982 CIBW_ENABLE : pypy
50- CIBW_ENVIRONMENT_LINUX : ' PATH="$HOME/.cargo/bin:$PATH"'
51- CIBW_ENVIRONMENT_MACOS : ' MACOSX_DEPLOYMENT_TARGET=10.12'
52- CIBW_ENVIRONMENT_WINDOWS : ' PATH="$UserProfile\.cargo\bin;$PATH"'
83+ CIBW_ENVIRONMENT_LINUX : PATH="$HOME/.cargo/bin:$PATH"
84+ CIBW_ENVIRONMENT_MACOS : MACOSX_DEPLOYMENT_TARGET=10.12
5385 CIBW_SKIP : ' *-musllinux_i686'
5486 # Run tests
5587 CIBW_TEST_REQUIRES : tox
5688 CIBW_TEST_COMMAND : tox -e native -c {package}/tox.ini --installpkg {wheel}
5789
58- - run : pip install abi3audit && abi3audit --strict --report dist/*-abi3-*.whl
90+ - name : Run abi3audit
91+ run : pip install abi3audit && abi3audit --strict --report dist/*-abi3-*.whl
5992
6093 - uses : actions/upload-artifact@v4
6194 with :
0 commit comments