diff --git a/.github/workflows/build_wheel.yml b/.github/workflows/build_wheel.yml new file mode 100644 index 000000000..73ed9650e --- /dev/null +++ b/.github/workflows/build_wheel.yml @@ -0,0 +1,41 @@ +--- +name: Build + +on: [push, pull_request] + +jobs: + build_wheels: + name: Build wheels on ${{ matrix.os }} + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + # macos-13 is an intel runner, macos-14 is apple silicon + os: [ubuntu-latest, windows-latest, macos-13, macos-14] + + steps: + - uses: actions/checkout@v4 + + - name: Build wheels + uses: pypa/cibuildwheel@v2.22.0 + env: + CIBW_SKIP: pp* # disable PyPy builds + CIBW_BEFORE_ALL_LINUX: dnf install -y libqxt-qt5 + CIBW_BEFORE_BUILD: > + cmake -B build -S . + -DCMAKE_BUILD_TYPE=Release + -DSPIRIT_BUILD_FOR_PYTHON=ON + -DSPIRIT_BUILD_TEST=OFF + -DSPIRIT_UI_CXX_QT=OFF + -DSPIRIT_UI_IMGUI=OFF + CIBW_MANYLINUX_X86_64_IMAGE: manylinux_2_28 + CIBW_MANYLINUX_I686_IMAGE: manylinux_2_28 + with: + package-dir: ./core/python + output-dir: wheelhouse + config-file: "{package}/pyproject.toml" + + - uses: actions/upload-artifact@v4 + with: + name: cibw-wheels-${{ matrix.os }}-${{ strategy.job-index }} + path: ./core/python/wheelhouse/*.whl