Skip to content

Merge pull request #181 from QuTech-Delft/olafs_git_hub_pipeline #21

Merge pull request #181 from QuTech-Delft/olafs_git_hub_pipeline

Merge pull request #181 from QuTech-Delft/olafs_git_hub_pipeline #21

Workflow file for this run

name: Assets
on:
release:
types:
- created
push:
branches:
- 'release**'
jobs:
macos-x64:
name: PyPI wheels for macOS
runs-on: macos-latest
strategy:
matrix:
python:
- "3.8"
- "3.9"
- "3.10"
- "3.11"
- "3.12"
steps:
- name: Checkout
uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python }}
- name: Install dependencies
run: |
brew install bison flex
echo "/usr/local/opt/bison/bin" >> $GITHUB_PATH
echo "/usr/local/opt/flex/bin" >> $GITHUB_PATH
python -m pip install --upgrade pip conan setuptools wheel
- name: Build wheel
run: python setup.py bdist_wheel
- name: Wheel path
id: wheel
working-directory: pybuild/dist/
run: echo "##[set-output name=wheel;]$(ls *.whl)"
- uses: actions/upload-artifact@v3
with:
name: pypi-macos-py${{ matrix.python }}
path: pybuild/dist/${{ steps.wheel.outputs.wheel }}
- uses: actions/upload-release-asset@v1
if: ${{ github.event_name == 'release' && github.event.action == 'created' }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ github.event.release.upload_url }}
asset_path: pybuild/dist/${{ steps.wheel.outputs.wheel }}
asset_name: ${{ steps.wheel.outputs.wheel }}
asset_content_type: application/zip
manylinux-x64:
name: PyPI wheels for Manylinux (x64)
runs-on: ubuntu-latest
container: quay.io/pypa/manylinux${{ matrix.manylinux }}_x86_64:latest
strategy:
matrix:
manylinux:
- "_2_28"
cpython_version:
- "cp38-cp38"
- "cp39-cp39"
- "cp310-cp310"
- "cp311-cp311"
- "cp312-cp312"
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Install dependencies
run: |
yum install -y bison-$BISON_VERSION swig3-$SWIG_VERSION
/opt/python/${{ matrix.cpython_version }}/bin/python -m pip install --upgrade conan wheel auditwheel
- name: Build wheel
run: |
/opt/python/${{ matrix.cpython_version }}/bin/python setup.py bdist_wheel
/opt/python/${{ matrix.cpython_version }}/bin/python -m auditwheel repair pybuild/dist/*.whl
- name: Wheel path
id: wheel
working-directory: wheelhouse
run: echo "##[set-output name=wheel;]$(ls *.whl)"
- uses: actions/upload-artifact@v3
with:
name: pypi-linux-${{ matrix.cpython_version }}
path: wheelhouse/${{ steps.wheel.outputs.wheel }}
- uses: actions/upload-release-asset@v1
if: ${{ github.event_name == 'release' && github.event.action == 'created' }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ github.event.release.upload_url }}
asset_path: wheelhouse/${{ steps.wheel.outputs.wheel }}
asset_name: ${{ steps.wheel.outputs.wheel }}
asset_content_type: application/zip
manylinux-arm64:
name: PyPI wheels for Manylinux (arm64)
runs-on:
- "self-hosted"
- "ARM64"
- "Linux"
container: quay.io/pypa/manylinux${{ matrix.manylinux }}_aarch64:latest
strategy:
matrix:
manylinux:
- "_2_28"
cpython_version:
- "cp38-cp38"
- "cp39-cp39"
- "cp310-cp310"
- "cp311-cp311"
- "cp312-cp312"
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Install dependencies
run: |
/opt/python/${{ matrix.cpython_version }}/bin/python -m pip install --upgrade pip conan wheel auditwheel
- name: Build wheel
run: |
conan remove -c "qx/*"
/opt/python/${{ matrix.cpython_version }}/bin/python setup.py bdist_wheel
/opt/python/${{ matrix.cpython_version }}/bin/python -m auditwheel repair pybuild/dist/*.whl
- name: Wheel path
id: wheel
working-directory: wheelhouse
run: echo "##[set-output name=wheel;]$(ls *.whl)"
- uses: actions/upload-artifact@v3
with:
name: pypi-linux-${{ matrix.cpython_version }}
path: wheelhouse/${{ steps.wheel.outputs.wheel }}
- uses: actions/upload-release-asset@v1
if: ${{ github.event_name == 'release' && github.event.action == 'created' }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ github.event.release.upload_url }}
asset_path: wheelhouse/${{ steps.wheel.outputs.wheel }}
asset_name: ${{ steps.wheel.outputs.wheel }}
asset_content_type: application/zip
windows-x64:
name: PyPI wheels for Windows
runs-on: windows-latest
strategy:
matrix:
python:
- "3.8"
- "3.9"
- "3.10"
- "3.11"
- "3.12"
steps:
- name: Checkout
uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python }}
- name: Install dependencies
run: python -m pip install --upgrade pip conan setuptools wheel
- name: Build wheel
run: python setup.py bdist_wheel
- name: Wheel path
id: wheel
working-directory: pybuild/dist/
run: echo "##[set-output name=wheel;]$(Get-ChildItem -name *.whl)"
- uses: actions/upload-artifact@v3
with:
name: pypi-windows-py${{ matrix.python }}
path: pybuild/dist/${{ steps.wheel.outputs.wheel }}
- uses: actions/upload-release-asset@v1
if: ${{ github.event_name == 'release' && github.event.action == 'created' }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ github.event.release.upload_url }}
asset_path: pybuild/dist/${{ steps.wheel.outputs.wheel }}
asset_name: ${{ steps.wheel.outputs.wheel }}
asset_content_type: application/zip
publish:
name: Publish
if: ${{ github.event_name == 'release' && github.event.action == 'created' }}
needs:
- macos-x64
- manylinux-x64
- manylinux-arm64
- windows-x64
runs-on: ubuntu-latest
steps:
- name: Download artifacts
uses: actions/download-artifact@v3
id: download
- name: Publish to PyPI
uses: pypa/[email protected]
with:
user: __token__
password: ${{ secrets.PYPI_TOKEN }}
packages_dir: ${{ steps.download.outputs.download-path }}/pypi-*