openclaw/scripts/lib/release-priority.d.mts
Peter Steinberger 53ccbd1b7b
feat(release): watch FRV children and rerun one child with a bounded budget (#161516)
Adds `pnpm frv watch --run <parent>`: it resolves Full Release Validation children from the parent's dispatch-job logs and reports each attempt transition and failed job once, with runner labels. It tolerates transient GitHub failures and resumes from a small state file.

Adds `pnpm frv rerun --run <parent> --child <key|run-id> [--max-attempts N]`: a bounded, audited single rerun-failed-jobs request. It reruns the green producer when a consumer binds its run attempt (#161317) and checks the new attempt for duplicate or missing jobs.

Retires `pnpm frv prioritize --run`, since the priority variable no longer controls admission. `--restore` stays.
2026-09-30 02:47:22 +00:00

34 lines
1.3 KiB
TypeScript

export const RELEASE_PRIORITY_VARIABLE: "OPENCLAW_RELEASE_PRIORITY_RUN";
export interface ReleasePriorityRun {
event: string;
headBranch: string;
id: string;
lane: string;
name: string;
url: string;
}
export interface ReleasePriorityRecord {
cancelled: Array<Omit<ReleasePriorityRun, "lane"> & Partial<Pick<ReleasePriorityRun, "lane">>>;
kind: string;
parentRunId: string;
recordedAt: string;
repository?: string;
}
export function isReleaseBranch(name: unknown): boolean;
export function isDeferrableRun(
run: Record<string, unknown> | undefined,
parentRunId: string | number,
): boolean;
export function listReleasePriorityRuns(
query: string,
apiJson: (resource: string) => Promise<unknown>,
apiText: (resource: string, jq: string) => Promise<string>,
): Promise<Record<string, unknown>[]>;
export function describeRun(run: Record<string, unknown>): ReleasePriorityRun;
export function selectDeferredRunCandidates(
runs: Record<string, unknown>[],
record: Pick<ReleasePriorityRecord, "parentRunId" | "recordedAt">,
): Record<string, unknown>[];
export function isDeferredCiJobSet(jobs: Record<string, unknown>[]): boolean;
export function readReleasePriorityRecord(path: string): ReleasePriorityRecord;
export function selectLatestRunsPerLane(runs: ReleasePriorityRun[]): ReleasePriorityRun[];