* chore(#1892): delete orphan verify-phase workflow, migrate live gates to verifier reference * test(#1892): retarget structural suites from verify-phase.md to verifier-phase-gates.md * chore(#1892): reword retired-workflow mentions for removed-but-needed lint * test(#1892): correct stale surface labels in retargeted suites * docs(#1892): add verifier-phase-gates row to locale inventories * chore(#3421): backfill changeset pr number --------- Co-authored-by: sim <sim@local>
This commit is contained in:
@@ -12,9 +12,8 @@
|
||||
* - surface a timeout (exit 124) with a watch-mode hint — the regression gate
|
||||
* ABORTS, the others surface clearly (never silently ignored).
|
||||
*
|
||||
* verify-phase's gate was ALREADY bounded (a fixed `run-with-timeout 300`, not a hang), so
|
||||
* it only needs the normalizer (so a watch runner exits fast) and keeps its own
|
||||
* fixed 5-minute bound — asserted separately below.
|
||||
* verify-phase's gate (a fourth, already-bounded surface) was deleted with its orphan
|
||||
* workflow in #1892; the gates above are the complete live set.
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
@@ -33,7 +32,6 @@ const REGRESSION_GATE = path.join(ROOT, 'gsd-core', 'workflows', 'execute-phase'
|
||||
const REGRESSION_GATE_RUN = path.join(ROOT, 'gsd-core', 'workflows', 'execute-phase', 'steps', 'regression-gate-run.md');
|
||||
const POST_MERGE_GATE = path.join(ROOT, 'gsd-core', 'workflows', 'execute-phase', 'steps', 'post-merge-gate.md');
|
||||
const AUDIT_FIX = path.join(ROOT, 'gsd-core', 'workflows', 'audit-fix.md');
|
||||
const VERIFY_PHASE = path.join(ROOT, 'gsd-core', 'workflows', 'verify-phase.md');
|
||||
const EXECUTE_PHASE = path.join(ROOT, 'gsd-core', 'workflows', 'execute-phase.md');
|
||||
|
||||
function read(p) { return fs.readFileSync(p, 'utf-8'); }
|
||||
@@ -66,18 +64,7 @@ describe('#1857: test gates normalize to one-shot and bound with a timeout', ()
|
||||
});
|
||||
}
|
||||
|
||||
// verify-phase is already bounded (fixed `run-with-timeout 300`, not a hang); it only
|
||||
// needs the normalizer so a watch runner exits fast, and names watch mode on 124.
|
||||
describe('verify-phase gate (already bounded — normalize-only)', () => {
|
||||
test('routes the resolved command through the shared normalize-test-command helper', () => {
|
||||
assert.match(read(VERIFY_PHASE), /normalize-test-command/, 'verify-phase must call the shared normalize-test-command helper');
|
||||
});
|
||||
test('surfaces its fixed timeout (exit 124) naming watch/dev mode', () => {
|
||||
const c = read(VERIFY_PHASE);
|
||||
assert.match(c, /-eq 124/, 'verify-phase must handle the timeout exit code (124)');
|
||||
assert.match(c, /watch\/dev mode/, 'verify-phase must name watch/dev mode as the likely cause on timeout');
|
||||
});
|
||||
});
|
||||
// verify-phase's normalize-only block was removed with the orphan workflow (#1892).
|
||||
|
||||
test('the regression gate ABORTS (halts) on a watch-mode timeout', () => {
|
||||
const c = read(REGRESSION_GATE);
|
||||
@@ -92,7 +79,7 @@ describe('#1857: test gates normalize to one-shot and bound with a timeout', ()
|
||||
test('the gates share ONE normalizer — the helper is a single source of truth', () => {
|
||||
// The behaviour lives in src/normalize-test-command.cts; every gate invokes it
|
||||
// by the same verb name, so a change to watch-defeat logic touches one place.
|
||||
for (const file of [REGRESSION_GATE_RUN, POST_MERGE_GATE, AUDIT_FIX, VERIFY_PHASE]) {
|
||||
for (const file of [REGRESSION_GATE_RUN, POST_MERGE_GATE, AUDIT_FIX]) {
|
||||
assert.match(read(file), /gsd_run query normalize-test-command/);
|
||||
}
|
||||
});
|
||||
@@ -107,8 +94,9 @@ describe('#1857: test gates normalize to one-shot and bound with a timeout', ()
|
||||
// first build file). Every gate that resolves a build/test command this way MUST
|
||||
// pass `--raw` so an unset key is a genuinely empty bash string the `-z` guard
|
||||
// catches. This is a defect CLASS — post-merge-gate.md was the reported instance,
|
||||
// but regression-gate.md, verify-phase.md, and audit-fix.md shared it, so the
|
||||
// guard sweeps all of them (a single-file check gave false confidence). config-get's
|
||||
// but regression-gate.md and audit-fix.md shared it, so the guard sweeps them (a
|
||||
// single-file check gave false confidence; the fourth original member,
|
||||
// verify-phase.md, was deleted as an orphan in #1892). config-get's
|
||||
// own `--raw` behaviour is covered in config-get-default.test.cjs.
|
||||
describe('#2350: every gate resolves build/test commands with --raw', () => {
|
||||
// Each gate file that reads workflow.build_command / workflow.test_command to
|
||||
@@ -116,7 +104,6 @@ describe('#2350: every gate resolves build/test commands with --raw', () => {
|
||||
const GATE_FILES = [
|
||||
['post-merge gate', POST_MERGE_GATE],
|
||||
['regression gate', REGRESSION_GATE_RUN],
|
||||
['verify-phase gate', VERIFY_PHASE],
|
||||
['audit-fix gate', AUDIT_FIX],
|
||||
];
|
||||
|
||||
|
||||
Reference in New Issue
Block a user