Better control over non-dynamic project metadata and license compliance when building wheels #63
Workflow file for this run
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: CI | |
on: | |
workflow_dispatch: | |
pull_request: | |
push: | |
branches: | |
- main | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
env: | |
FORCE_COLOR: 3 | |
jobs: | |
style: | |
name: Lint | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: 3.12 | |
- name: Run style checks | |
run: pipx run nox -s lint | |
build_wheels: | |
needs: [style] | |
name: Wheels (${{ matrix.runs-on }} / Python ${{ matrix.python-version }}) | |
runs-on: ${{ matrix.runs-on }} | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: ["3.8", "3.12"] | |
runs-on: [ubuntu-latest, macos-latest, windows-latest] | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
allow-prereleases: true | |
- name: Set up Go toolchain | |
uses: actions/setup-go@v5 | |
with: | |
go-version: "1.21.x" | |
cache: false | |
check-latest: true | |
- name: Install MinGW on Windows | |
if: matrix.runs-on == 'windows-latest' | |
run: choco install mingw | |
- name: Install Python dependencies | |
run: python -m pip install build virtualenv nox | |
- name: Build binary distribution (wheel) | |
run: | | |
python -m build --wheel . --outdir wheelhouse/ | |
- name: Test entry points for package | |
run: nox -s venv | |
build_sdist: | |
needs: [style] | |
name: Build and inspect source distribution (SDist) | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Set up Go toolchain | |
uses: actions/setup-go@v5 | |
with: | |
go-version: "1.21.x" | |
cache: false | |
check-latest: true | |
- name: Build SDist and upload to GitHub Actions artifacts | |
id: inspect-sdist | |
continue-on-error: true | |
uses: hynek/build-and-inspect-python-package@v2 | |
# run this workflow even if the SDist build failed, mark it as passed | |
- name: Job is complete | |
if: steps.inspect-sdist.outcome == 'failure' || steps.inspect-sdist.outcome == 'success' && always() | |
run: | | |
echo "Previous step failed with exit code ${{ steps.inspect-sdist.outcome }}, but we don't care!" | |
exit 0 |