Files
openclaw/scripts/docker-channel-promote.d.mts
T
Dallin Romney ec500af40a fix(release): isolate extended-stable Docker aliases (#112822)
* fix(release): isolate extended-stable Docker aliases

(cherry picked from commit db9915fedb)

# Conflicts:
#	.agents/skills/release-openclaw-maintainer/SKILL.md
#	.agents/skills/release-openclaw-maintainer/references/extended-stable-backports.md
#	.github/workflows/docker-release.yml
#	docs/docs_map.md
#	docs/install/docker.md
#	docs/reference/RELEASING.md

* fix(release): harden Docker channel promotion

(cherry picked from commit 505a6fe922)

* docs(release): pin Docker policy into tagged tree

(cherry picked from commit 3ff98457ba)

# Conflicts:
#	.agents/skills/release-openclaw-maintainer/SKILL.md
#	.agents/skills/release-openclaw-maintainer/references/extended-stable-backports.md
#	docs/reference/RELEASING.md

* refactor(release): isolate Docker channel promotion

(cherry picked from commit 3d02c5c821)

# Conflicts:
#	.agents/skills/release-openclaw-maintainer/SKILL.md
#	docs/reference/RELEASING.md

* fix(release): queue Docker publications

(cherry picked from commit b7cb1697ea)

* fix(release): harden docker channel promotion

(cherry picked from commit 7510aa52ce)

# Conflicts:
#	docs/reference/RELEASING.md
#	scripts/lib/npm-publish-plan.d.mts
#	scripts/lib/npm-publish-plan.mjs
#	scripts/openclaw-npm-postpublish-verify.ts

* fix(release): promote Docker aliases after verification

(cherry picked from commit a13cba1484)

# Conflicts:
#	.agents/skills/release-openclaw-maintainer/SKILL.md
#	docs/reference/RELEASING.md

* fix(release): harden Docker channel promotion

(cherry picked from commit ecc07ba7a3)

# Conflicts:
#	docs/ci.md
#	scripts/verify-docker-attestations.d.mts

* fix(release): adapt Docker promotion to maintenance policy helpers
2026-07-22 18:19:35 -07:00

38 lines
1.0 KiB
TypeScript

import type { DockerReleaseChannel } from "./lib/docker-release-policy.mjs";
export type DockerChannelPromotion = {
image: string;
sourceRef: string;
targetRefs: string[];
};
export type DockerChannelPromotionPlan = {
channel: DockerReleaseChannel;
promotions: DockerChannelPromotion[];
version: string;
};
export function createDockerChannelPromotionPlan(params: {
version: string;
images: string[];
}): DockerChannelPromotionPlan;
export function promoteDockerChannel(
params: { version: string; images: string[] },
options?: {
allowRollback?: boolean;
execFileSyncImpl?: (command: string, args: string[], options: object) => string;
log?: (message: string) => void;
verifyAttestationsImpl?: (params: {
imageRefs: string[];
requiredPlatforms: Array<{
architecture: string;
os: string;
variant?: string;
}>;
execFileSyncImpl: (command: string, args: string[], options: object) => string;
log: (message: string) => void;
}) => void;
},
): DockerChannelPromotionPlan;