Better control over non-dynamic project metadata and license compliance when building wheels #64
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 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: 3.12 | |
- name: Build SDist | |
run: pipx run build --sdist . --outdir dist/ | |
- name: Inspect SDist | |
run: pipx run twine check dist/* --strict | |
- name: Display contents of SDist | |
shell: bash | |
run: | | |
mkdir -p output/sdist | |
tar -xf dist/*.tar.gz -C output/sdist | |
echo -e '# SDist contents\n' >> $GITHUB_STEP_SUMMARY | |
echo -e '```\n' >> $GITHUB_STEP_SUMMARY | |
(cd output/sdist && tree -Da --timefmt="%Y-%m-%dT%H:%M:%SZ" * | sed 's/^/ /' | tee -a $GITHUB_STEP_SUMMARY) | |
echo -e '\n```\n' >> $GITHUB_STEP_SUMMARY |