chore(deps): Bump actions/download-artifact (#26) #102
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/checkout@v2 | |
- 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/checkout@v2 | |
- 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/upload-artifact@v2 | |
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/checkout@v2 | |
- 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/upload-artifact@v2 | |
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/checkout@v2 | |
- name: Set up QEMU | |
if: matrix.cibw_arch == 'aarch64' | |
uses: docker/setup-qemu-action@v1 | |
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/upload-artifact@v2 | |
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/checkout@v2 | |
- 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/upload-artifact@v2 | |
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/* |