Skip to content

Bump the py-updates group across 1 directory with 9 updates #337

Bump the py-updates group across 1 directory with 9 updates

Bump the py-updates group across 1 directory with 9 updates #337

Workflow file for this run

name: CI
on:
push:
branches:
- main
paths-ignore:
- CHANGELOG.md
- CONTRIBUTING.md
- LICENSE
- README.md
pull_request:
workflow_dispatch:
permissions:
contents: read
env:
FORCE_COLOR: "1"
PIP_DISABLE_PIP_VERSION_CHECK: "1"
PIP_NO_PYTHON_VERSION_WARNING: "1"
jobs:
generate-nox-sessions:
name: Get nox session lists to use for matrices in other jobs
runs-on: ubuntu-latest
outputs:
nox_tests: ${{ steps.set-matrix.outputs.nox_tests }}
nox_audit_dependencies: ${{ steps.set-matrix.outputs.nox_audit_dependencies }}
steps:
- name: Checkout πŸ›ŽοΈ
uses: actions/checkout@v6
with:
persist-credentials: false
- name: Install uv 🌟
uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 #v8.2.0
with:
version: "0.11.8"
- name: Set nox session matrices 🧩
id: set-matrix
shell: bash
run: |
echo nox_tests=$(uvx nox --session tests --json -l | jq -c '[.[].session]') | tee --append $GITHUB_OUTPUT
echo nox_audit_dependencies=$(uvx nox --session audit --json -l | jq -c '[.[].session]') | tee --append $GITHUB_OUTPUT
lint:
name: Lint and type check
runs-on: ubuntu-latest
steps:
- name: Checkout πŸ›ŽοΈ
uses: actions/checkout@v6
with:
persist-credentials: false
- name: Install uv 🌟
uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 #v8.2.0
with:
version: "0.11.8"
- name: Lint 🧹
run: uvx nox --session lint
- name: Type Check 🧐
run: uvx nox --session typecheck
coverage:
name: Generate coverage reports & fail if below threshold
runs-on: ubuntu-latest
steps:
- name: Checkout πŸ›ŽοΈ
uses: actions/checkout@v6
with:
persist-credentials: false
- name: Install uv 🌟
uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 #v8.2.0
with:
version: "0.11.8"
- name: Generate coverage report πŸ“Š
# The coverage session runs the test suite using the latest stable
# python version and uses that output to generate the coverage report
# (as opposed to merging coverage reports from all python versions)
run: uvx nox --session coverage >> $GITHUB_STEP_SUMMARY
- name: Upload HTML report if coverage check fails πŸ“€
uses: actions/upload-artifact@v7
with:
name: html-cov-report
path: htmlcov
if: ${{ failure() }}
audit:
name: Audit project dependencies
needs: generate-nox-sessions
runs-on: ubuntu-latest
strategy:
matrix:
nox_audit_dependencies: ${{ fromJson(needs.generate-nox-sessions.outputs.nox_audit_dependencies) }}
os: [macos-latest, ubuntu-latest, windows-latest]
steps:
- name: Checkout πŸ›ŽοΈ
uses: actions/checkout@v6
with:
persist-credentials: false
- name: Install uv 🌟
uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 #v8.2.0
with:
version: "0.11.8"
- name: Run nox audit session ${{ matrix.nox_audit_dependencies }} πŸ”Ž
run: uvx nox --session ${{ matrix.nox_audit_dependencies }}
tests:
name: Run tests
needs: generate-nox-sessions
runs-on: ubuntu-latest
strategy:
matrix:
nox_tests: ${{ fromJson(needs.generate-nox-sessions.outputs.nox_tests) }}
os: [macos-latest, ubuntu-latest, windows-latest]
steps:
- name: Checkout πŸ›ŽοΈ
uses: actions/checkout@v6
with:
persist-credentials: false
- name: Install uv 🌟
uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 #v8.2.0
with:
version: "0.11.8"
- name: Run nox test session ${{ matrix.nox_tests }} πŸ§ͺ
run: uvx nox --session ${{ matrix.nox_tests }}
doc_build:
name: Test docs build
runs-on: ubuntu-latest
strategy:
matrix:
os: [macos-latest, ubuntu-latest, windows-latest]
steps:
- name: Checkout πŸ›ŽοΈ
uses: actions/checkout@v6
with:
persist-credentials: false
- name: Install uv 🌟
uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 #v8.2.0
with:
version: "0.11.8"
- name: Run nox docs session πŸ“œ
run: uvx nox --session docs