Files
openclaw/scripts/lib/docker-e2e-plan.d.mts
2026-07-15 22:40:00 -07:00

89 lines
2.8 KiB
TypeScript

import type {
DockerE2eImageKind,
DockerE2eLane,
DockerE2eReleaseProfile,
DockerE2eReleaseProfileInput,
} from "./docker-e2e-scenarios.mjs";
export type DockerE2ePlanLane = {
command: string;
imageKind?: DockerE2eImageKind;
live: boolean;
name: string;
noOutputTimeoutMs?: number;
resources: string[];
stateScenario?: string;
timeoutMs?: number;
weight: number;
};
export type DockerE2ePlanOptions = {
allowFrozenTargetScenarioOmissions?: boolean;
includeOpenWebUI: boolean;
liveMode: "all" | "only" | "skip";
liveRetries: number;
orderLanes: <T>(lanes: T[]) => T[];
planReleaseAll: boolean;
profile: string;
releaseChunk: string;
releaseProfile?: DockerE2eReleaseProfileInput;
selectedLaneNames: string[];
timingStore?: unknown;
upgradeSurvivorBaselines?: string;
upgradeSurvivorScenarios?: string;
upgradeSurvivorTargetRoot?: string;
};
export type DockerE2ePlan = {
chunk: string;
credentials: string[];
imageKinds: DockerE2eImageKind[];
includeOpenWebUI: boolean;
lanes: DockerE2ePlanLane[];
mainLanes: DockerE2ePlanLane[];
omittedUnsupportedLanes: string[];
needs: {
bareImage: boolean;
e2eImage: boolean;
functionalImage: boolean;
liveImage: boolean;
package: boolean;
};
profile: string;
releaseProfile?: DockerE2eReleaseProfile;
selectedLanes: DockerE2ePlanLane[];
tailLanes: DockerE2ePlanLane[];
version: number;
};
export const DEFAULT_LIVE_RETRIES: number;
export const DEFAULT_E2E_BARE_IMAGE: string;
export const DEFAULT_E2E_FUNCTIONAL_IMAGE: string;
export const DEFAULT_PARALLELISM: number;
export const DEFAULT_PROFILE: string;
export const DEFAULT_RESOURCE_LIMITS: Record<string, number>;
export const DEFAULT_TAIL_PARALLELISM: number;
export const RELEASE_PATH_PROFILE: string;
export function normalizeReleaseProfile(raw: unknown): DockerE2eReleaseProfile;
export function parseLaneSelection(raw: unknown): string[];
export function normalizeUpgradeSurvivorBaselineSpec(raw: unknown): string | undefined;
export function parseLiveMode(raw: unknown): DockerE2ePlanOptions["liveMode"];
export function parseProfile(raw: unknown): string;
export function laneWeight(poolLane: DockerE2eLane): number;
export function laneResources(poolLane: DockerE2eLane): string[];
export function laneSummary(poolLane: DockerE2eLane): string;
export function lanesNeedE2eImageKind(
poolLanes: DockerE2eLane[],
kind: DockerE2eImageKind,
): boolean;
export function lanesNeedOpenClawPackage(poolLanes: DockerE2eLane[]): boolean;
export function findLaneByName(name: string): DockerE2eLane | undefined;
export function resolveDockerE2ePlan(options: DockerE2ePlanOptions): {
omittedUnsupportedLaneNames: string[];
orderedLanes: DockerE2eLane[];
orderedTailLanes: DockerE2eLane[];
plan: DockerE2ePlan;
scheduledLanes: DockerE2eLane[];
};