Skip to content

weekly-certification #8

weekly-certification

weekly-certification #8

# ---------------------------------------------------------------------------
# T2 -- the weekly certification.
#
# The suite runs at three cadences. Which tier a block belongs to is decided by
# the CLASS OF BUG it catches, not by how long it takes
# (dev/plans/backlog/2026-07-29_test-suite-tiering-audit_AUDIT.md;
# dev/review-2026-08/MAINTAINERS.md section 6).
#
# T0 every run local devtools::test() + .github/workflows/fast-checks.yaml
# Contracts, validation, wiring, the product surface, the tight numerical
# unit guards. No gate. Budget ~90 s.
#
# T1 nightly .github/workflows/nightly-validation.yaml. Daily 03:00 UTC.
# BGMS_RUN_SLOW_TESTS=true.
# Graph-law and prior-chain identities, the gauge detector, single
# surface-vs-gold cells, the RB saturation boundary, concordance smokes.
# Budget <= 60 min on the 2-core runner; timeout-minutes: 90.
#
# T2 weekly THIS FILE. Sunday 03:00 UTC on develop.
# BGMS_RUN_CERTIFICATION=true AND BGMS_RUN_SLOW_TESTS=true, so a weekly
# run carries the nightly tier as well and certifies the whole suite.
# The heavy Monte-Carlo machinery: SBC suites (1000-fit), full
# parameter-recovery sweeps, full NUTS-vs-MH condition grids, n = 2e6 MC
# channels, and the refit cross-validations (including the F-049 gate).
# timeout-minutes: 360.
#
# Not to be confused with weekly-compliance.yaml (Sunday 05:00), the bitwise
# vs-CRAN-0.1.6.3 harness. That workflow is unrelated and untouched.
#
# Ref mechanics: GitHub fires cron schedules from the DEFAULT branch's copy of
# this file, so this workflow only starts firing once it reaches main at the
# release re-merge; the explicit checkout ref is what then points it at develop,
# the branch where change happens. A manual dispatch checks out the ref it was
# dispatched on.
# ---------------------------------------------------------------------------
name: weekly-certification
on:
schedule:
- cron: '0 3 * * 0' # Sunday at 03:00 UTC
workflow_dispatch: {}
jobs:
certify:
name: T2 weekly certification (Monte-Carlo machinery, <= 6 h)
runs-on: ubuntu-latest
timeout-minutes: 360
env:
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
R_KEEP_PKG_SOURCE: yes
BGMS_RUN_SLOW_TESTS: true
BGMS_RUN_CERTIFICATION: true
steps:
- uses: actions/checkout@v5
with:
ref: ${{ github.event_name == 'schedule' && 'develop' || github.ref }}
- uses: r-lib/actions/setup-r@v2
with:
use-public-rspm: true
- uses: r-lib/actions/setup-r-dependencies@v2
with:
# Deliberately NOT local::. -- installing bgms here costs ~10 min of
# the runner's budget and would serve exactly one test block, whose
# PSOCK workers need an installed namespace. That block skips itself
# when bgms is absent; R-CMD-check.yaml covers the path on five
# platforms with the package installed.
extra-packages: any::devtools
- name: Run the full suite (T0 + T1 + T2)
run: Rscript -e 'devtools::test(stop_on_failure = TRUE)'