Ship-step contract for pipelines: uniform exit codes (0/1/2/3/4/7) in cli/lib/ship-step.ts, one final --json line, --result-file (atomic, also on failure), --progress json, --env-file with secret redaction, --version-from; idempotent play upload / apple upload / play release / apple submit re-runs end with exit 7; play upload takes --track production and --version-code

This commit is contained in:
CRTkafa 2026-10-23 13:13:21 +08:00
parent 4eac8e8cd8
commit 06a0b424f5
14 changed files with 928 additions and 24 deletions

View file

@ -57,6 +57,9 @@ export const DECLINED_MARK = 'declined: ';
/** A declined confirmation: the reason on stderr, a nonzero exit code; returns false for confirm(). */
export function declined(reason: string): false {
console.error(`${DECLINED_MARK}${reason}`);
// a ship step (cli/lib/ship-step.ts) reports the reason in error.message of its exit 3
const ship = (globalThis as unknown as Record<symbol, { declined?: string } | null | undefined>)[Symbol.for('storebound.shipRun')];
if (ship) ship.declined = reason;
process.exitCode = DECLINED_EXIT;
return false;
}