Skip to content

Commit f0537e9

Browse files
committed
fix(ci): plan openwebui functional image
1 parent 9efbae7 commit f0537e9

4 files changed

Lines changed: 16 additions & 10 deletions

File tree

scripts/check-docker-e2e-boundaries.mjs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ const ROOT_DIR = path.resolve(path.dirname(fileURLToPath(import.meta.url)), ".."
1212
const errors = [];
1313
const packageJson = JSON.parse(readText("package.json"));
1414
const packageScripts = new Set(Object.keys(packageJson.scripts ?? {}));
15-
// This lane proves the published Codex npm plugin against live OpenAI auth, so
16-
// it intentionally needs both live credentials and the package-backed image.
17-
const livePackageBackedLanes = new Set(["live-codex-npm-plugin"]);
15+
// These lanes prove package-installed surfaces against live auth, so they
16+
// intentionally need both live credentials and a package-backed image.
17+
const livePackageBackedLanes = new Set(["live-codex-npm-plugin", "openwebui"]);
1818

1919
function readText(relativePath) {
2020
return fs.readFileSync(path.join(ROOT_DIR, relativePath), "utf8");

scripts/lib/docker-e2e-plan.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -369,7 +369,7 @@ function buildPlanJson(params) {
369369
bareImage: imageKinds.includes("bare"),
370370
e2eImage: imageKinds.length > 0,
371371
functionalImage: imageKinds.includes("functional"),
372-
liveImage: scheduledLanes.some((poolLane) => poolLane.live),
372+
liveImage: scheduledLanes.some((poolLane) => poolLane.needsLiveImage),
373373
package: lanesNeedOpenClawPackage(scheduledLanes),
374374
},
375375
profile: params.profile,

scripts/lib/docker-e2e-scenarios.mjs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ function lane(name, command, options = {}) {
3636
live: options.live === true,
3737
noOutputTimeoutMs: options.noOutputTimeoutMs,
3838
name,
39+
needsLiveImage: options.needsLiveImage,
3940
retryPatterns: options.retryPatterns ?? [],
4041
retries: options.retries ?? 0,
4142
resources: options.resources ?? [],
@@ -79,6 +80,7 @@ function liveLane(name, command, options = {}) {
7980
return lane(name, command, {
8081
...options,
8182
live: true,
83+
needsLiveImage: options.needsLiveImage ?? true,
8284
resources: ["live", ...liveProviderResources(options), ...(options.resources ?? [])],
8385
retryPatterns: options.retryPatterns ?? LIVE_RETRY_PATTERNS,
8486
retries: options.retries ?? DEFAULT_LIVE_RETRIES,
@@ -158,6 +160,8 @@ export const mainLanes = [
158160
},
159161
),
160162
liveLane("openwebui", "OPENCLAW_SKIP_DOCKER_BUILD=1 pnpm test:docker:openwebui", {
163+
e2eImageKind: "functional",
164+
needsLiveImage: false,
161165
provider: "openai",
162166
resources: ["service"],
163167
timeoutMs: OPENWEBUI_TIMEOUT_MS,
@@ -583,6 +587,8 @@ const legacyReleasePathChunks = {
583587

584588
function openWebUILane() {
585589
return liveLane("openwebui", "OPENCLAW_SKIP_DOCKER_BUILD=1 pnpm test:docker:openwebui", {
590+
e2eImageKind: "functional",
591+
needsLiveImage: false,
586592
provider: "openai",
587593
resources: ["service"],
588594
timeoutMs: OPENWEBUI_TIMEOUT_MS,

test/scripts/docker-e2e-plan.test.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -472,7 +472,7 @@ describe("scripts/lib/docker-e2e-plan", () => {
472472
});
473473
});
474474

475-
it("plans Open WebUI as a live-only lane with OpenAI credentials", () => {
475+
it("plans Open WebUI as a live-auth functional image lane", () => {
476476
const plan = planFor({
477477
includeOpenWebUI: true,
478478
selectedLaneNames: ["openwebui"],
@@ -481,17 +481,17 @@ describe("scripts/lib/docker-e2e-plan", () => {
481481
expect(plan.credentials).toEqual(["openai"]);
482482
expect(plan.lanes).toEqual([
483483
expect.objectContaining({
484-
imageKind: undefined,
484+
imageKind: "functional",
485485
live: true,
486486
name: "openwebui",
487487
resources: expect.arrayContaining(["docker", "live", "live:openai", "service"]),
488488
}),
489489
]);
490490
expect(plan.needs).toMatchObject({
491-
e2eImage: false,
492-
functionalImage: false,
493-
liveImage: true,
494-
package: false,
491+
e2eImage: true,
492+
functionalImage: true,
493+
liveImage: false,
494+
package: true,
495495
});
496496
});
497497

0 commit comments

Comments
 (0)