chore: gate the validation harness in CI as an explicit check (#51) #431
No reviewers
Labels
No labels
area: build
area: ci
area: compare
area: data
area: engine
area: model
area: provenance
area: rite
area: validation
backport
blocked
breaking
confirmed
dependencies
duplicate
epic
github_actions
invalid
needs-info
needs-triage
php
priority: high
priority: low
priority: medium
regression
type: bug
type: chore
type: correction
type: docs
type: enhancement
type: feature
type: fix
type: perf
type: refactor
type: security
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Directorium/Core!431
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "chore/51-validation-ci-gating"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #51. Completes Epic #45 (validation harness).
The oracle re-proving already runs inside the full suite on every PR, but only implicitly. This makes it a first-class, named merge gate.
Changes
.github/workflows/ci.yml— a dedicatedvalidatejob that re-proves the engine against the pinned oracles as an explicit check (distinct from the matrix's full run), so any divergence from the committed baselines fails the build. Pinned to one PHP version withext-calendar(for Computus); Composer dependencies cached (actions/cachekeyed oncomposer.lock) to keep it fast. The oracle fixtures are committed, so there's no network at test time.phpunit.xml.dist— avalidationtestsuite overtests/Validation;testnow targetsintroibo-coreso the harness isn't run twice by the full suite.composer.json— avalidate-oraclesscript (phpunit --testsuite validation) for CI + local parity.AC status
validatejob runs the whole oracle suite (Easter #46, missalemeum #48, SSPX #49; DO #50 self-skips without a checkout)validateto themainruleset's required checks is a maintainer-only settings change; flagged separately (see below)Maintainer action
The
mainprotection ruleset currently requirescheck (7.4/8.1/8.2/8.3). To make the explicit gate blocking, addvalidateto that ruleset's required status checks. (Develop is unprotected by design, butvalidateruns on every PR regardless.)Local:
composer test→ 641 once (no double-run);composer validate-oracles→ 22-test oracle suite in ~0.2s.