core/.github/workflows/nightly-full-pytest.yml
Shay f93f756e44
Some checks failed
smoke / smoke (-m "not quarantine") (pull_request) Successful in 5m35s
lane-shas / verify pinned lane SHAs (pull_request) Failing after 28m37s
ci: order-of-magnitude CI optimization for single 2-vCPU Act runner
Root cause of PR checks stuck "Waiting to run": full-pytest on main ran
~12k tests including the slow registry on a 1.5-CPU / 1.2 GiB job cgroup
for hours, monopolizing the only runner.

Workflows:
- full-pytest.yml: fast lane only (`not quarantine and not slow`)
- nightly-full-pytest.yml: full suite including slow (schedule + manual)
- lane-shas.yml: PR path filters so pin verification is skipped when
  the change cannot affect lane report bytes

Docs: docs/ci-optimization.md + testing-lanes CI mapping.

Infra (VM, same change window): job cgroup 2 CPU / 1800 MiB; hung
full-pytest task stopped so the queue can drain PR smoke/lane-shas.
2026-07-14 20:40:52 -07:00

52 lines
1.3 KiB
YAML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

name: nightly-full-pytest
# Slow/soak lane — the heavyweight registry excluded from post-merge full-pytest.
# Runs on a schedule so it cannot starve PR smoke / lane-shas on the single
# self-hosted Act runner.
#
# Manual: Actions → nightly-full-pytest → Run workflow.
on:
schedule:
# 06:00 UTC daily — adjust if runner is shared with other heavy jobs.
- cron: "0 6 * * *"
workflow_dispatch:
permissions:
contents: read
concurrency:
group: nightly-full-pytest
cancel-in-progress: true
jobs:
pytest-slow:
name: nightly full (not quarantine, includes slow)
runs-on: ubuntu-latest
timeout-minutes: 120
steps:
- name: checkout
uses: actions/checkout@v4
with:
fetch-depth: 1
ref: main
- name: set up uv
uses: astral-sh/setup-uv@v5
with:
python-version: '3.12.13'
enable-cache: true
- name: install dependencies
run: |
uv pip install -e ".[dev]" pyyaml
- name: pytest full including slow registry
env:
PYTHONPATH: ${{ github.workspace }}
CORE_SHOWCASE_SKIP_BUDGET: "1"
UV_LINK_MODE: copy
run: |
# Single worker on 2vCPU host avoids xdist thrash with 16min fixtures.
uv run pytest -m "not quarantine" -n 1 --tb=short -q --maxfail=20