Fix CI actions on GitHub #872
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build all wheels for testing | |
on: | |
push: | |
# Build wheels when pushing to master. | |
branches: | |
- master | |
# Build wheels for any PRs. | |
pull_request: | |
jobs: | |
build_wheels: | |
name: Build wheels on ${{ matrix.os }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- os: macos-12 # x86_64 | |
name: mac | |
env: | |
macosx_deployment_target: "12.0" | |
cibw: | |
build: "cp39* cp310* cp311* cp312*" | |
- os: macos-13-large # Apple Silicon | |
name: mac_arm64 | |
env: | |
macosx_deployment_target: "13.0" | |
cibw: | |
build: "cp39* cp310* cp311* cp312*" | |
- os: ubuntu-20.04 | |
name: manylinux2014 | |
cibw: | |
arch: x86_64 | |
build: "cp39* cp310* cp311* cp312*" | |
manylinux_image: manylinux2014 | |
- os: windows-2019 | |
name: win_amd64 | |
architecture: x64 | |
cibw: | |
build: "cp39-win_amd64 cp310-win_amd64 cp311-win_amd64 cp312-win_amd64" | |
env: | |
MACOSX_DEPLOYMENT_TARGET: "${{ matrix.env.macosx_deployment_target }}" | |
CIBW_BUILD: "${{ matrix.cibw.build || '*' }}" | |
CIBW_SKIP: "*musllinux*" | |
CIBW_ARCHS: "${{ matrix.cibw.arch || 'auto' }}" | |
CIBW_MANYLINUX_X86_64_IMAGE: "${{ matrix.cibw.manylinux_image }}" | |
CIBW_BEFORE_BUILD_MACOS: "brew install libomp llvm@12 && brew link --overwrite [email protected] && brew link --force libomp" | |
CIBW_REPAIR_WHEEL_COMMAND_MACOS: "delocate-listdeps {wheel} && delocate-wheel --verbose --require-archs {delocate_archs} -w {dest_dir} {wheel}" | |
# to install latest delocate package | |
CIBW_DEPENDENCY_VERSIONS: "latest" | |
# due to package and module name conflict have to temporarily move it away to run tests | |
CIBW_BEFORE_TEST: "mv {package}/qsimcirq /tmp" | |
CIBW_TEST_EXTRAS: "dev" | |
CIBW_TEST_COMMAND: "pytest {package}/qsimcirq_tests/qsimcirq_test.py && mv /tmp/qsimcirq {package}" | |
steps: | |
- uses: actions/checkout@v4 | |
# Used to host cibuildwheel | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: '3.11' | |
- name: Install cibuildwheel and twine | |
run: python -m pip install cibuildwheel==2.20.0 | |
- name: Install requirements | |
run: python -m pip install -r requirements.txt | |
- name: Run C++ tests | |
run: bash build_tools/test_libs.sh | |
- name: Show environment variables | |
run: env | |
- name: Build wheels | |
run: python -m cibuildwheel --output-dir wheelhouse | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: python-wheels-${{ matrix.name }} | |
path: ./wheelhouse/*.whl |