mirror of
https://github.com/azaion/gps-denied-onboard.git
synced 2026-06-21 08:41:12 +00:00
a2a9c2ca46
Scheduled at 03:00 UTC daily + workflow_dispatch. - sitl job: pytest --collect-only -m sitl (scaffold; tests self-skip without ARDUPILOT_SITL_HOST; real SITL containers remain in sitl.yml) - e2e job: pytest -m 'e2e or e2e_slow' (soft-fail in Phase 2; datasets self-skip via conftest fixtures; hard-fail enabled in Phase 6 / FIXTURE-01) sitl.yml untouched per PATTERNS.md §4.3 item 3.
53 lines
2.2 KiB
YAML
53 lines
2.2 KiB
YAML
name: Nightly (slow tests)
|
|
|
|
# Run nightly at 03:00 UTC + on manual dispatch.
|
|
# Owns the slow-test lanes that don't fit the PR feedback loop:
|
|
# - sitl: pytest -m sitl (gated by ARDUPILOT_SITL_HOST in tests)
|
|
# - e2e: pytest -m e2e + e2e_slow against real datasets (when present)
|
|
#
|
|
# The on-demand SITL workflow lives in .github/workflows/sitl.yml and is unchanged.
|
|
on:
|
|
schedule:
|
|
- cron: "0 3 * * *"
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
sitl:
|
|
name: SITL marker collection (scaffold — real SITL via sitl.yml)
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 30
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-python@v5
|
|
with:
|
|
python-version: "3.11"
|
|
cache: pip
|
|
- run: sudo apt-get update -qq && sudo apt-get install -y --no-install-recommends libgl1 libglib2.0-0
|
|
- run: pip install --no-cache-dir -e ".[dev]"
|
|
- name: Collect SITL tests (skipped without ARDUPILOT_SITL_HOST)
|
|
# In nightly, ARDUPILOT_SITL_HOST is intentionally absent; tests self-skip.
|
|
# The on-demand .github/workflows/sitl.yml runs the actual SITL containers.
|
|
# This job exists so the -m sitl marker is exercised on a recurring basis
|
|
# and a collection regression is caught.
|
|
run: python -m pytest tests/ -m sitl --collect-only -q
|
|
|
|
e2e:
|
|
name: E2E real-flight dataset replay
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 120
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-python@v5
|
|
with:
|
|
python-version: "3.11"
|
|
cache: pip
|
|
- run: sudo apt-get update -qq && sudo apt-get install -y --no-install-recommends libgl1 libglib2.0-0
|
|
- run: pip install --no-cache-dir -e ".[dev]"
|
|
- name: Run e2e tests (skip when datasets are absent)
|
|
# tests/e2e/conftest.py fixtures self-skip tests when their dataset path is missing.
|
|
# If no dataset is present in the runner image, the job runs the collection but
|
|
# most assertions short-circuit on the skip fixture.
|
|
run: python -m pytest tests/ -m "e2e or e2e_slow" -v --tb=short || true
|
|
# `|| true` to allow soft-failure during Phase 2 bootstrap; flip to hard-fail in
|
|
# Phase 6 when FIXTURE-01 lands a CI-provisioned Azaion dataset.
|