chore: Bump Nox #7075
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: Test | |
on: | |
pull_request: | |
types: [opened, synchronize, reopened] | |
paths: | |
- "samples/**" | |
- "singer_sdk/**" | |
- "tests/**" | |
- "noxfile.py" | |
- "pyproject.toml" | |
- "uv.lock" | |
- ".github/workflows/test.yml" | |
- ".github/workflows/resources/requirements.txt" | |
push: | |
branches: | |
- main | |
- v* | |
paths: | |
- "samples/**" | |
- "singer_sdk/**" | |
- "tests/**" | |
- "noxfile.py" | |
- "pyproject.toml" | |
- "uv.lock" | |
- ".github/workflows/test.yml" | |
- ".github/workflows/resources/requirements.txt" | |
workflow_dispatch: | |
inputs: {} | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
env: | |
FORCE_COLOR: "1" | |
UV_CONSTRAINT: ${{ github.workspace }}/.github/workflows/resources/requirements.txt | |
UV_VERSION: 0.5.26 | |
jobs: | |
tests: | |
name: "Test on ${{ matrix.python-version }} (${{ matrix.session }}) / ${{ matrix.os }}" | |
runs-on: ${{ matrix.os }} | |
continue-on-error: true | |
env: | |
NOXPYTHON: ${{ matrix.python-version }} | |
NOXSESSION: ${{ matrix.session }} | |
strategy: | |
fail-fast: false | |
matrix: | |
session: [tests] | |
os: ["ubuntu-latest", "macos-latest", "windows-latest"] | |
python-version: | |
- "3.9" | |
- "3.10" | |
- "3.11" | |
- "3.12" | |
- "3.13" | |
include: | |
- { session: doctest, python-version: "3.13", os: "ubuntu-latest" } | |
- { session: mypy, python-version: "3.13", os: "ubuntu-latest" } | |
- { session: deps, python-version: "3.13", os: "ubuntu-latest" } | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
allow-prereleases: true | |
- uses: astral-sh/setup-uv@v5 | |
with: | |
version: ${{ env.UV_VERSION }} | |
- name: Install Nox | |
run: | | |
uv tool install 'nox[uv]' | |
nox --version | |
- uses: actions/cache@v4 | |
if: matrix.session == 'tests' | |
with: | |
path: http_cache.sqlite | |
key: http_cache-${{ runner.os }}-${{ matrix.python-version }} | |
- name: Run Nox | |
env: | |
UV_PRERELEASE: allow | |
run: | | |
nox --verbose | |
- uses: actions/upload-artifact@v4 | |
if: always() && (matrix.session == 'tests') | |
with: | |
include-hidden-files: true | |
name: coverage-data-nox_-${{ matrix.os }}-py${{ matrix.python-version }} | |
path: ".coverage.*" | |
tests-external: | |
name: External Tests | |
runs-on: ubuntu-latest | |
if: ${{ !github.event.pull_request.head.repo.fork }} | |
env: | |
NOXPYTHON: "3.12" | |
NOXSESSION: tests | |
SAMPLE_TAP_GITLAB_AUTH_TOKEN: ${{ secrets.SAMPLE_TAP_GITLAB_AUTH_TOKEN }} | |
SAMPLE_TAP_GITLAB_GROUP_IDS: ${{ secrets.SAMPLE_TAP_GITLAB_GROUP_IDS }} | |
SAMPLE_TAP_GITLAB_PROJECT_IDS: ${{ secrets.SAMPLE_TAP_GITLAB_PROJECT_IDS }} | |
SAMPLE_TAP_GITLAB_START_DATE: "2022-01-01T00:00:00Z" | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ env.NOXPYTHON }} | |
- uses: astral-sh/setup-uv@v5 | |
with: | |
version: ${{ env.UV_VERSION }} | |
- name: Install Nox | |
run: | | |
uv tool install 'nox[uv]' | |
nox --version | |
- name: Run Nox | |
env: | |
UV_PRERELEASE: allow | |
run: | | |
nox -- -m "external" | |
coverage: | |
name: Coverage | |
runs-on: ubuntu-latest | |
needs: tests | |
env: | |
NOXSESSION: coverage | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: '3.x' | |
- uses: actions/download-artifact@v4 | |
with: | |
pattern: coverage-data-* | |
merge-multiple: true | |
- uses: astral-sh/setup-uv@v5 | |
with: | |
version: ${{ env.UV_VERSION }} | |
- name: Install Nox | |
run: | | |
uv tool install 'nox[uv]' | |
nox --version | |
- run: nox --install-only | |
- name: Combine coverage data and display human readable report | |
run: | | |
nox -r --no-install -- combine --debug=pathmap | |
nox -r --no-install -- report --show-missing --ignore-errors | |
- name: Create coverage report | |
run: | | |
nox -r --no-install -- xml | |
- uses: codecov/codecov-action@v5 | |
with: | |
fail_ci_if_error: true | |
token: ${{ secrets.CODECOV_TOKEN }} |