Skip to content

[pre-commit.ci] pre-commit autoupdate #561

[pre-commit.ci] pre-commit autoupdate

[pre-commit.ci] pre-commit autoupdate #561

Workflow file for this run

name: Build
on: [push, pull_request]
permissions:
contents: read
jobs:
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: '3.8'
- run: |
python -m pip install pylint
python -m pip install -e .
- uses: pre-commit/action@v3.0.0
with:
extra_args: pylint --all-files
build_sdist:
name: Build source distribution
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: '3.8'
- name: Build sdist
run: |
python -m pip install --user build
python -m build --sdist
- uses: actions/upload-artifact@v3
with:
name: source
path: dist/*.tar.gz
build_wheels:
needs: build_sdist
name: Build wheel ${{ matrix.wheel }} on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
include:
- { wheel: cp38-macosx_arm64, os: macos-latest }
- { wheel: cp38-macosx_x86_64, os: macos-latest }
- { wheel: cp38-manylinux_x86_64, os: ubuntu-latest }
- { wheel: cp38-win_amd64, os: windows-latest }
- { wheel: cp39-macosx_arm64, os: macos-latest }
- { wheel: cp39-macosx_x86_64, os: macos-latest }
- { wheel: cp39-manylinux_x86_64, os: ubuntu-latest }
- { wheel: cp39-win_amd64, os: windows-latest }
- { wheel: cp310-macosx_arm64, os: macos-latest }
- { wheel: cp310-macosx_x86_64, os: macos-latest }
- { wheel: cp310-manylinux_x86_64, os: ubuntu-latest }
- { wheel: cp310-win_amd64, os: windows-latest }
- { wheel: cp311-macosx_arm64, os: macos-latest }
- { wheel: cp311-macosx_x86_64, os: macos-latest }
- { wheel: cp311-manylinux_x86_64, os: ubuntu-latest }
- { wheel: cp311-win_amd64, os: windows-latest }
# Currently broken on pypy3.8
# - { wheel: pp38-macosx_x86_64, os: macos-latest }
# - { wheel: pp38-manylinux_x86_64, os: ubuntu-latest }
# - { wheel: pp38-win_amd64, os: windows-latest }
- { wheel: pp39-macosx_x86_64, os: macos-latest }
- { wheel: pp39-manylinux_x86_64, os: ubuntu-latest }
- { wheel: pp39-win_amd64, os: windows-latest }
steps:
- name: Download source distribution
uses: actions/download-artifact@v3
with:
name: source
- name: Unpack source distribution
shell: bash
run: tar --strip-components 1 -xvf *.tar.gz
- name: Build wheel
uses: pypa/cibuildwheel@v2.12.1
with:
output-dir: wheelhouse
env:
CIBW_ARCHS_MACOS: x86_64 arm64
CIBW_BUILD: ${{ matrix.wheel }}
CIBW_TEST_COMMAND: python -m unittest discover -v -s {package}/tests
CIBW_TEST_SKIP: "*_arm64"
CIBW_BUILD_VERBOSITY: 1
- uses: actions/upload-artifact@v3
with:
name: wheels
path: ./wheelhouse/*.whl
build_docs:
name: Build docs
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: '3.11'
- run: |
pip install -e .[docs]
cd docs && make html coverage
if [ -s _build/coverage/python.txt ]; then
echo "Doc coverage is missing for:"
cat _build/coverage/python.txt
exit 1
fi
upload_pypi:
name: Upload wheels to PyPI
needs: [lint, build_docs, build_sdist, build_wheels]
runs-on: ubuntu-latest
# upload to PyPI on every tag starting with 'v'
if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags/v')
steps:
- uses: actions/download-artifact@v3
with:
name: source
path: dist
- uses: actions/download-artifact@v3
with:
name: wheels
path: dist
- uses: pypa/gh-action-pypi-publish@release/v1
with:
user: __token__
password: ${{ secrets.PYPI_TOKEN }}