Update actions versions in pythonpackage.yml #104
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 | |
on: | |
push: | |
branches: [ master ] | |
tags: | |
- '*' | |
pull_request: | |
branches: [ master ] | |
jobs: | |
build-and-test: | |
name: Testing with Python 3.${{ matrix.python_minor }} on Linux | |
runs-on: ubuntu-20.04 | |
strategy: | |
matrix: | |
python_minor: [ "6" , "7" , "8" , "9" , "10" ] | |
steps: | |
- uses: actions/[email protected] | |
- name: Install cibuildwheel | |
run: | | |
python3 -m pip install --upgrade pip | |
python3 -m pip install cibuildwheel twine | |
- name: 🛠 Build and Test Hexhamming Python C extension | |
run: cibuildwheel | |
env: | |
CIBW_BUILD: ${{ format('cp3{0}-manylinux_x86_64', matrix.python_minor) }} | |
CIBW_BEFORE_TEST: pip install -r requirements-dev.txt | |
CIBW_TEST_COMMAND: "pytest -s {project}" | |
CIBW_BUILD_VERBOSITY: 1 | |
- name: Check built wheels | |
run: twine check wheelhouse/* | |
sdist: | |
if: startsWith(github.ref, 'refs/tags') | |
needs: build-and-test | |
name: Source distribution | |
runs-on: macos-11 | |
steps: | |
- uses: actions/[email protected] | |
- name: Install requirements | |
run: | | |
pip3 install --user check-manifest twine | |
python3 -m pip install --upgrade pip setuptools wheel | |
python3 -m pip install -r requirements-dev.txt | |
- name: Run check-manifest | |
run: python3 -m check_manifest | |
- name: Build sdist | |
run: python3 -m build --sdist --outdir wheelhouse | |
- name: Install from sdist | |
run: pip3 install --user wheelhouse/*.tar.gz | |
- name: Check sdist | |
run: python3 -m twine check wheelhouse/* | |
- name: Upload sdist | |
uses: actions/[email protected] | |
with: | |
name: wheels | |
path: wheelhouse/*.tar.gz | |
wheels_macos: | |
if: startsWith(github.ref, 'refs/tags') | |
needs: [build-and-test, sdist] | |
name: Build macOS ${{ matrix.cibw_python }} ${{ matrix.cibw_arch }} wheels | |
runs-on: macos-11 | |
strategy: | |
fail-fast: true | |
matrix: | |
cibw_python: [ "cp38-*", "cp39-*", "cp310-*" ] | |
cibw_arch: [ "x86_64", "arm64" ] | |
steps: | |
- uses: actions/[email protected] | |
- name: Install cibuildwheel | |
run: | | |
python3 -m pip install --upgrade pip | |
python3 -m pip install cibuildwheel twine | |
echo DEPLOYMENT_TARGET=10.9 >> $GITHUB_ENV | |
- name: Changing deployment target | |
if: matrix.cibw_arch == 'arm64' | |
run: echo DEPLOYMENT_TARGET=12.0 >> $GITHUB_ENV | |
- name: 🛠 Build Hexhamming Python C extension | |
run: cibuildwheel | |
env: | |
CIBW_ENVIRONMENT: MACOSX_DEPLOYMENT_TARGET=${{ env.DEPLOYMENT_TARGET }} | |
CIBW_BUILD: ${{ matrix.cibw_python }} | |
CIBW_ARCHS_MACOS: ${{ matrix.cibw_arch }} | |
CIBW_TEST_SKIP: "*-macosx_arm64" | |
CC: /usr/bin/clang | |
CXX: /usr/bin/clang++ | |
CFLAGS: "-Wno-implicit-function-declaration" | |
CIBW_BEFORE_TEST: pip install -r requirements-dev.txt | |
CIBW_TEST_COMMAND: "pytest -s {project}" | |
CIBW_BUILD_VERBOSITY: 1 | |
- name: Check built wheels | |
run: twine check wheelhouse/* | |
- name: Upload built wheels | |
uses: actions/[email protected] | |
with: | |
name: wheels | |
path: wheelhouse/*.whl | |
if-no-files-found: error | |
wheels_linux: | |
if: startsWith(github.ref, 'refs/tags') | |
needs: [build-and-test, sdist] | |
name: Build ${{ matrix.cibw_buildlinux }} ${{ matrix.cibw_arch }} wheels | |
runs-on: ubuntu-20.04 | |
strategy: | |
fail-fast: true | |
matrix: | |
cibw_buildlinux: [ manylinux, musllinux ] | |
cibw_arch: [ "x86_64", "aarch64" ] | |
steps: | |
- uses: actions/[email protected] | |
- name: Set up QEMU | |
if: matrix.cibw_arch == 'aarch64' | |
uses: docker/[email protected] | |
with: | |
platforms: arm64 | |
- name: Install cibuildwheel | |
run: | | |
python3 -m pip install --upgrade pip | |
python3 -m pip install cibuildwheel twine | |
- name: 🛠 Build Hexhamming Python C extension | |
run: cibuildwheel | |
env: | |
CIBW_BUILD: ${{ format('cp3*-{0}*', matrix.cibw_buildlinux) }} | |
CIBW_ARCHS_LINUX: ${{ matrix.cibw_arch }} | |
CIBW_BEFORE_TEST: pip install -r requirements-dev.txt | |
CIBW_TEST_COMMAND: "pytest -s {project}" | |
CIBW_BUILD_VERBOSITY: 1 | |
- name: Check built wheels | |
run: twine check wheelhouse/* | |
- name: Upload built wheels | |
uses: actions/[email protected] | |
with: | |
name: wheels | |
path: wheelhouse/*.whl | |
if-no-files-found: error | |
wheels_windows: | |
if: startsWith(github.ref, 'refs/tags') | |
needs: [build-and-test, sdist] | |
name: Build Windows wheels | |
runs-on: windows-2019 | |
steps: | |
- uses: actions/[email protected] | |
- name: Install cibuildwheel | |
run: | | |
python3 -m pip install --upgrade pip | |
python3 -m pip install cibuildwheel twine | |
- name: 🛠 Build Hexhamming Python C extension | |
run: cibuildwheel | |
env: | |
CIBW_BUILD: "cp36-* cp37-* cp38-* cp39-* cp310-*" | |
CIBW_ARCHS_WINDOWS: "AMD64" | |
CIBW_BEFORE_TEST: pip install -r requirements-dev.txt | |
CIBW_TEST_COMMAND: "pytest -s {project}" | |
CIBW_BUILD_VERBOSITY: 1 | |
- name: Check built wheels | |
run: twine check wheelhouse/* | |
- name: Upload built wheels | |
uses: actions/[email protected] | |
with: | |
name: wheels | |
path: wheelhouse/*.whl | |
if-no-files-found: error | |
publish-wheels: | |
if: startsWith(github.ref, 'refs/tags') | |
needs: [wheels_macos, wheels_linux, wheels_windows] | |
name: Publish wheels | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Collect sdist and wheels | |
uses: actions/[email protected] | |
with: | |
name: wheels | |
path: wheelhouse | |
- name: Install twine | |
run: python -m pip install twine | |
- name: 📦 Publish distribution to PyPI | |
env: | |
TWINE_USERNAME: __token__ | |
TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }} | |
run: twine upload --skip-existing wheelhouse/* |