Skip to content

Commit

Permalink
👷 Add CI workflows for s390x and ppc64le architectures (#198)
Browse files Browse the repository at this point in the history
## Description

This PR adds CI support for building `s390x` and `ppc64le` Python
wheels. This completes the long list of wheels that is offered by
Qiskit. Hence, once this PR is merged and a release is created, QCEC
provides binary wheels for any platform supported by Qiskit.
Since these are emulated platforms and GitHub places a 6h timeout on
jobs, the jobs are split up as much as possible (creating 10 new jobs).
Jobs for these platforms are split into a separate workflow file and
only run on releases.

resolves #153 

## Checklist:

<!---
This checklist serves as a reminder of a couple of things that ensure
your pull request will be merged swiftly.
-->

- [x] The pull request only contains commits that are related to it.
- [x] I have added appropriate tests and documentation.
- [x] I have made sure that all CI jobs on GitHub pass.
- [x] The pull request introduces no new warnings and follows the
project's style guidelines.

Signed-off-by: burgholzer <burgholzer@me.com>
  • Loading branch information
burgholzer authored Nov 8, 2022
1 parent befde9b commit 7215f93
Showing 1 changed file with 51 additions and 0 deletions.
51 changes: 51 additions & 0 deletions .github/workflows/emulated-wheels.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
name: Python Packaging Emulated Wheels

on:
release:
types: [published]
workflow_dispatch:

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
build_wheels_emulation:
name: ${{ matrix.python }} wheels on ${{ matrix.arch }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
arch: ["s390x", "ppc64le"]
python: ["cp37-*", "cp38-*", "cp39-*", "cp310-*", "cp311-*"]
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
submodules: recursive
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Build wheels
uses: pypa/cibuildwheel@v2.11.2
env:
CIBW_ARCHS_LINUX: ${{ matrix.arch }}
CIBW_BUILD: ${{ matrix.python }}
CIBW_TEST_SKIP: "cp*"
- uses: actions/upload-artifact@v3
with:
path: ./wheelhouse/*.whl

upload_pypi:
needs: [build_wheels_emulation]
runs-on: ubuntu-latest
if: github.event_name == 'release' && github.event.action == 'published'
steps:
- uses: actions/download-artifact@v3
with:
name: artifact
path: dist
- uses: pypa/gh-action-pypi-publish@release/v1
with:
password: ${{ secrets.pypi_password }}
skip_existing: true
verbose: true

0 comments on commit 7215f93

Please sign in to comment.