1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
|
name: build
on: [push, pull_request]
jobs:
build_wheels:
name: Build wheels on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [windows-2022, ubuntu-22.04, macos-15, macos-15-intel]
steps:
- uses: actions/checkout@v6
- uses: actions/setup-python@v6
with:
python-version: "3.12"
- name: Set up QEMU
if: runner.os == 'Linux'
uses: docker/setup-qemu-action@v3
with:
platforms: all
- name: Build wheels
uses: pypa/cibuildwheel@v3.3.1
env:
CIBW_SKIP: pp* gp*
CIBW_BUILD_VERBOSITY: 0
CIBW_ARCHS: auto64
CIBW_TEST_COMMAND: python {project}/setup.py build_ext -i && pytest {project}/tests
CIBW_TEST_REQUIRES: pyfaidx==0.5.8 pytest
- name: Display wheel
run: ls -l wheelhouse
- name: Upload wheels to artifact
uses: actions/upload-artifact@v4
with:
name: artifact-${{ matrix.os }}
path: ./wheelhouse/*.whl
build_sdist:
name: Build source distribution
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/setup-python@v6
name: Install Python
with:
python-version: "3.12"
- run: pip install setuptools
- name: Build sdist
run: python setup.py sdist
- name: Display dist
run: ls -l dist
- uses: actions/upload-artifact@v4
with:
name: artifact-source
path: dist/*.tar.gz
upload_pypi:
needs: [build_wheels, build_sdist]
runs-on: ubuntu-latest
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
steps:
- uses: actions/download-artifact@v5
with:
pattern: artifact-*
merge-multiple: true
path: dist
- run: ls -l dist/
- uses: pypa/gh-action-pypi-publish@release/v1
with:
user: __token__
password: ${{ secrets.PYPI_API_TOKEN }}
#repository_url: https://test.pypi.org/legacy/
|