Skip to content

Nightly tests

Nightly tests #7

Workflow file for this run

# Nightly run of the FULL test suite across all cost tiers (default, pr,
# and nightly), plus the performance benchmarks. The per-push and per-PR
# runs in test.yml deselect the pr/nightly tiers; the nightly run does
# not. See ADR test-suite-and-validation.
name: Nightly tests
on:
# Run the nightly-tier tests on a daily schedule
schedule:
- cron: '0 3 * * *' # 03:00 UTC daily
# Allow manual runs from the Actions tab
workflow_dispatch:
permissions:
contents: read
# Allow only one concurrent nightly run per ref.
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
nightly-tests:
runs-on: ubuntu-latest
steps:
- name: Check-out repository
uses: actions/checkout@v6
with:
# Full history with tags so versioningit derives the real
# version instead of the v999.0.0 fallback in notebook output.
fetch-depth: 0
- name: Set up pixi
uses: ./.github/actions/setup-pixi
# Run each tier as its own step for per-suite visibility. The two
# tutorial steps must stay sequential — they share
# tmp/tutorials/projects/ — so they run as ordered steps rather than
# a single depends-on aggregate. `if: ${{ !cancelled() }}` lets a
# failure in one tier still report the others.
- name: Unit tests
run: pixi run unit-tests
- name: Functional tests
if: ${{ !cancelled() }}
run: pixi run functional-tests
- name: Integration tests
if: ${{ !cancelled() }}
run: pixi run integration-tests
- name: Tutorials as scripts + output check
if: ${{ !cancelled() }}
run: pixi run script-tests-checked
- name: Tutorials + verification notebooks + output check
if: ${{ !cancelled() }}
run: pixi run notebook-tests-checked
- name: Run performance benchmarks
if: ${{ !cancelled() }}
run: pixi run benchmarks
- name: Upload benchmark results
if: ${{ !cancelled() }}
uses: ./.github/actions/upload-artifact
with:
name: benchmark-results
path: benchmark.json