fix: expose the manual gate set without changing hooks

This commit is contained in:
Tianyi Cui
2026-07-22 18:01:54 +08:00
parent 6d054fd31b
commit 197cae8bdd
7 changed files with 17 additions and 14 deletions

View File

@@ -17,6 +17,7 @@ type Mode =
| 'ci-snapshot'
| 'ci-artifacts'
| 'node-compat'
| 'pre-push'
| 'manual-push'
| 'doc-sync'
type GateStatus = 'pending' | 'running' | 'passed' | 'failed' | 'skipped'
@@ -87,12 +88,13 @@ function parseMode(raw: string | undefined): Mode {
case 'ci-snapshot':
case 'ci-artifacts':
case 'node-compat':
case 'pre-push':
case 'manual-push':
case 'doc-sync':
return raw
default:
throw new Error(
`run-gates: expected mode ci-primary | ci-static | ci-lint | ci-coverage | ci-snapshot | ci-artifacts | node-compat | manual-push | doc-sync, got ${JSON.stringify(raw)}.`,
`run-gates: expected mode ci-primary | ci-static | ci-lint | ci-coverage | ci-snapshot | ci-artifacts | node-compat | pre-push | manual-push | doc-sync, got ${JSON.stringify(raw)}.`,
)
}
}
@@ -101,7 +103,7 @@ function defaultConcurrency(selectedMode: Mode, total: number): ConcurrencyDefau
const available = availableParallelism()
// Local modes cap workers: several doc gates each build a full ts.Program,
// so an uncapped default on a large host trades wall clock for memory blowups.
const localCap = selectedMode === 'manual-push' || selectedMode === 'doc-sync'
const localCap = selectedMode === 'pre-push' || selectedMode === 'manual-push' || selectedMode === 'doc-sync'
const modeLimit = localCap ? Math.min(4, available) : available
return {
workers: Math.min(total, modeLimit),
@@ -191,6 +193,7 @@ function gatesForMode(selected: Mode): Gate[] {
'packages/session-persistence/session-persistence-jsonl/tests/zstd.compat.spec.ts',
], { label: 'JSONL Zstandard smoke' }),
]
case 'pre-push': return []
case 'manual-push':
return [
pnpmScript('runtime-closure', 'verify-runtime-closure', { label: 'runtime closure' }),