mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-27 12:56:01 -06:00
test(scripts): route dockerfile metadata changes
This commit is contained in:
@@ -427,8 +427,24 @@ const OFFICIAL_EXTERNAL_CATALOG_TEST_TARGETS = [
|
||||
"src/plugins/official-external-plugin-catalog.test.ts",
|
||||
"test/release-check.test.ts",
|
||||
];
|
||||
const DOCKERFILE_CACHE_AND_DIGEST_TEST_TARGETS = [
|
||||
"src/docker-build-cache.test.ts",
|
||||
"src/docker-image-digests.test.ts",
|
||||
];
|
||||
const ROOT_DOCKERFILE_TEST_TARGETS = [
|
||||
...DOCKERFILE_CACHE_AND_DIGEST_TEST_TARGETS,
|
||||
"src/dockerfile.test.ts",
|
||||
"test/scripts/test-install-sh-docker.test.ts",
|
||||
];
|
||||
const INSTALL_DOCKERFILE_TEST_TARGETS = [
|
||||
...DOCKERFILE_CACHE_AND_DIGEST_TEST_TARGETS,
|
||||
"test/scripts/test-install-sh-docker.test.ts",
|
||||
];
|
||||
const LIVE_MEDIA_RUNNER_IMAGE_TEST_TARGETS = ["test/scripts/package-acceptance-workflow.test.ts"];
|
||||
const TOOLING_SOURCE_TEST_TARGETS = new Map([
|
||||
["Dockerfile", ROOT_DOCKERFILE_TEST_TARGETS],
|
||||
[".crabbox.yaml", ["test/scripts/package-acceptance-workflow.test.ts"]],
|
||||
[".github/images/live-media-runner/Dockerfile", LIVE_MEDIA_RUNNER_IMAGE_TEST_TARGETS],
|
||||
[".github/workflows/ci.yml", ["test/scripts/ci-workflow-guards.test.ts"]],
|
||||
[
|
||||
".github/workflows/security-sensitive-guard.yml",
|
||||
@@ -446,6 +462,7 @@ const TOOLING_SOURCE_TEST_TARGETS = new Map([
|
||||
".github/workflows/crabbox-hydrate.yml",
|
||||
["test/scripts/ci-workflow-guards.test.ts", "test/scripts/package-acceptance-workflow.test.ts"],
|
||||
],
|
||||
[".github/workflows/live-media-runner-image.yml", LIVE_MEDIA_RUNNER_IMAGE_TEST_TARGETS],
|
||||
[
|
||||
".github/workflows/openclaw-release-checks.yml",
|
||||
["test/scripts/package-acceptance-workflow.test.ts"],
|
||||
@@ -830,13 +847,49 @@ const TOOLING_SOURCE_TEST_TARGETS = new Map([
|
||||
["scripts/lib/official-external-plugin-catalog.json", OFFICIAL_EXTERNAL_CATALOG_TEST_TARGETS],
|
||||
["scripts/lib/official-external-provider-catalog.json", OFFICIAL_EXTERNAL_CATALOG_TEST_TARGETS],
|
||||
["scripts/lib/direct-run.mjs", ["test/scripts/changed-lanes.test.ts"]],
|
||||
[
|
||||
"scripts/docker/cleanup-smoke/Dockerfile",
|
||||
[...DOCKERFILE_CACHE_AND_DIGEST_TEST_TARGETS, "test/scripts/docker-build-helper.test.ts"],
|
||||
],
|
||||
["scripts/docker/cleanup-smoke/run.sh", ["test/scripts/docker-build-helper.test.ts"]],
|
||||
["scripts/docker/install-sh-e2e/Dockerfile", INSTALL_DOCKERFILE_TEST_TARGETS],
|
||||
[
|
||||
"scripts/docker/install-sh-e2e/run.sh",
|
||||
["test/scripts/docker-build-helper.test.ts", "test/scripts/test-install-sh-docker.test.ts"],
|
||||
],
|
||||
["scripts/docker/install-sh-nonroot/Dockerfile", INSTALL_DOCKERFILE_TEST_TARGETS],
|
||||
["scripts/docker/install-sh-nonroot/run.sh", ["test/scripts/test-install-sh-docker.test.ts"]],
|
||||
["scripts/docker/install-sh-smoke/Dockerfile", INSTALL_DOCKERFILE_TEST_TARGETS],
|
||||
["scripts/docker/install-sh-smoke/run.sh", ["test/scripts/test-install-sh-docker.test.ts"]],
|
||||
[
|
||||
"scripts/docker/sandbox/Dockerfile",
|
||||
[...DOCKERFILE_CACHE_AND_DIGEST_TEST_TARGETS, "src/dockerfile.test.ts"],
|
||||
],
|
||||
[
|
||||
"scripts/docker/sandbox/Dockerfile.browser",
|
||||
[...DOCKERFILE_CACHE_AND_DIGEST_TEST_TARGETS, "src/agents/sandbox/browser.create.test.ts"],
|
||||
],
|
||||
["scripts/docker/sandbox/Dockerfile.common", ["src/docker-build-cache.test.ts"]],
|
||||
[
|
||||
"scripts/e2e/Dockerfile",
|
||||
[
|
||||
...DOCKERFILE_CACHE_AND_DIGEST_TEST_TARGETS,
|
||||
"test/scripts/docker-build-helper.test.ts",
|
||||
"test/scripts/docker-e2e-plan.test.ts",
|
||||
],
|
||||
],
|
||||
[
|
||||
"scripts/e2e/Dockerfile.qr-import",
|
||||
[...DOCKERFILE_CACHE_AND_DIGEST_TEST_TARGETS, "test/scripts/docker-build-helper.test.ts"],
|
||||
],
|
||||
[
|
||||
"scripts/e2e/plugin-binding-command-escape.Dockerfile",
|
||||
[
|
||||
"src/docker-image-digests.test.ts",
|
||||
"test/scripts/docker-build-helper.test.ts",
|
||||
"test/scripts/docker-e2e-plan.test.ts",
|
||||
],
|
||||
],
|
||||
["scripts/lib/docker-e2e-container.sh", ["test/scripts/docker-build-helper.test.ts"]],
|
||||
["scripts/lib/docker-e2e-package.sh", ["test/scripts/docker-build-helper.test.ts"]],
|
||||
[
|
||||
|
||||
@@ -5,6 +5,9 @@ import { parse } from "yaml";
|
||||
|
||||
const PACKAGE_ACCEPTANCE_WORKFLOW = ".github/workflows/package-acceptance.yml";
|
||||
const LIVE_E2E_WORKFLOW = ".github/workflows/openclaw-live-and-e2e-checks-reusable.yml";
|
||||
const LIVE_MEDIA_RUNNER_DOCKERFILE = ".github/images/live-media-runner/Dockerfile";
|
||||
const LIVE_MEDIA_RUNNER_IMAGE = "ghcr.io/openclaw/openclaw-live-media-runner:ubuntu-24.04";
|
||||
const LIVE_MEDIA_RUNNER_IMAGE_WORKFLOW = ".github/workflows/live-media-runner-image.yml";
|
||||
const NPM_TELEGRAM_WORKFLOW = ".github/workflows/npm-telegram-beta-e2e.yml";
|
||||
const PACKAGE_JSON = "package.json";
|
||||
const SETUP_PNPM_STORE_CACHE_ACTION = ".github/actions/setup-pnpm-store-cache/action.yml";
|
||||
@@ -853,9 +856,23 @@ describe("package artifact reuse", () => {
|
||||
expect(workflow).toMatch(
|
||||
/validate_live_media_provider_suites:[\s\S]*?runs-on: \$\{\{ inputs\.use_github_hosted_runners && 'ubuntu-24\.04' \|\| 'blacksmith-8vcpu-ubuntu-2404' \}\}/u,
|
||||
);
|
||||
expect(workflow).toContain("image: ghcr.io/openclaw/openclaw-live-media-runner:ubuntu-24.04");
|
||||
expect(workflow).toContain(`image: ${LIVE_MEDIA_RUNNER_IMAGE}`);
|
||||
expect(workflow).toContain("ffmpeg -version | head -1");
|
||||
expect(workflow).toContain("ffprobe -version | head -1");
|
||||
const imageDockerfile = readFileSync(LIVE_MEDIA_RUNNER_DOCKERFILE, "utf8");
|
||||
const imageWorkflow = readFileSync(LIVE_MEDIA_RUNNER_IMAGE_WORKFLOW, "utf8");
|
||||
const buildJob = workflowJob(LIVE_MEDIA_RUNNER_IMAGE_WORKFLOW, "build");
|
||||
const buildStep = workflowStep(buildJob, "Build and push live media runner image");
|
||||
expect(imageDockerfile).toMatch(/^FROM ubuntu:24\.04$/m);
|
||||
expect(imageDockerfile).toContain("apt-get install -y --no-install-recommends");
|
||||
for (const packageName of ["bash", "curl", "ffmpeg", "git", "openssh-client", "zstd"]) {
|
||||
expect(imageDockerfile).toContain(` ${packageName} \\`);
|
||||
}
|
||||
expect(imageDockerfile).toContain("rm -rf /var/lib/apt/lists/*");
|
||||
expect(imageWorkflow).toContain(`- "${LIVE_MEDIA_RUNNER_DOCKERFILE}"`);
|
||||
expect(buildStep.with?.context).toBe(".github/images/live-media-runner");
|
||||
expect(buildStep.with?.file).toBe(LIVE_MEDIA_RUNNER_DOCKERFILE);
|
||||
expect(buildStep.with?.tags).toContain(LIVE_MEDIA_RUNNER_IMAGE);
|
||||
expect(workflow).toContain("suite_id: native-live-extensions-media-audio");
|
||||
expect(workflow).toContain("suite_id: native-live-extensions-media-music-google");
|
||||
expect(workflow).toContain("suite_id: native-live-extensions-media-music-minimax");
|
||||
|
||||
@@ -1507,13 +1507,104 @@ describe("scripts/test-projects changed-target routing", () => {
|
||||
"scripts/lib/ios-version.ts",
|
||||
["test/scripts/ios-version.test.ts", "test/scripts/ios-pin-version.test.ts"],
|
||||
],
|
||||
[
|
||||
".github/images/live-media-runner/Dockerfile",
|
||||
["test/scripts/package-acceptance-workflow.test.ts"],
|
||||
],
|
||||
[
|
||||
".github/workflows/live-media-runner-image.yml",
|
||||
["test/scripts/package-acceptance-workflow.test.ts"],
|
||||
],
|
||||
[
|
||||
"Dockerfile",
|
||||
[
|
||||
"src/docker-build-cache.test.ts",
|
||||
"src/docker-image-digests.test.ts",
|
||||
"src/dockerfile.test.ts",
|
||||
"test/scripts/test-install-sh-docker.test.ts",
|
||||
],
|
||||
],
|
||||
[
|
||||
"scripts/docker/cleanup-smoke/Dockerfile",
|
||||
[
|
||||
"src/docker-build-cache.test.ts",
|
||||
"src/docker-image-digests.test.ts",
|
||||
"test/scripts/docker-build-helper.test.ts",
|
||||
],
|
||||
],
|
||||
["scripts/docker/cleanup-smoke/run.sh", ["test/scripts/docker-build-helper.test.ts"]],
|
||||
[
|
||||
"scripts/docker/install-sh-e2e/Dockerfile",
|
||||
[
|
||||
"src/docker-build-cache.test.ts",
|
||||
"src/docker-image-digests.test.ts",
|
||||
"test/scripts/test-install-sh-docker.test.ts",
|
||||
],
|
||||
],
|
||||
[
|
||||
"scripts/docker/install-sh-e2e/run.sh",
|
||||
["test/scripts/docker-build-helper.test.ts", "test/scripts/test-install-sh-docker.test.ts"],
|
||||
],
|
||||
[
|
||||
"scripts/docker/install-sh-nonroot/Dockerfile",
|
||||
[
|
||||
"src/docker-build-cache.test.ts",
|
||||
"src/docker-image-digests.test.ts",
|
||||
"test/scripts/test-install-sh-docker.test.ts",
|
||||
],
|
||||
],
|
||||
["scripts/docker/install-sh-nonroot/run.sh", ["test/scripts/test-install-sh-docker.test.ts"]],
|
||||
[
|
||||
"scripts/docker/install-sh-smoke/Dockerfile",
|
||||
[
|
||||
"src/docker-build-cache.test.ts",
|
||||
"src/docker-image-digests.test.ts",
|
||||
"test/scripts/test-install-sh-docker.test.ts",
|
||||
],
|
||||
],
|
||||
["scripts/docker/install-sh-smoke/run.sh", ["test/scripts/test-install-sh-docker.test.ts"]],
|
||||
[
|
||||
"scripts/docker/sandbox/Dockerfile",
|
||||
[
|
||||
"src/docker-build-cache.test.ts",
|
||||
"src/docker-image-digests.test.ts",
|
||||
"src/dockerfile.test.ts",
|
||||
],
|
||||
],
|
||||
[
|
||||
"scripts/docker/sandbox/Dockerfile.browser",
|
||||
[
|
||||
"src/docker-build-cache.test.ts",
|
||||
"src/docker-image-digests.test.ts",
|
||||
"src/agents/sandbox/browser.create.test.ts",
|
||||
],
|
||||
],
|
||||
["scripts/docker/sandbox/Dockerfile.common", ["src/docker-build-cache.test.ts"]],
|
||||
[
|
||||
"scripts/e2e/Dockerfile",
|
||||
[
|
||||
"src/docker-build-cache.test.ts",
|
||||
"src/docker-image-digests.test.ts",
|
||||
"test/scripts/docker-build-helper.test.ts",
|
||||
"test/scripts/docker-e2e-plan.test.ts",
|
||||
],
|
||||
],
|
||||
[
|
||||
"scripts/e2e/Dockerfile.qr-import",
|
||||
[
|
||||
"src/docker-build-cache.test.ts",
|
||||
"src/docker-image-digests.test.ts",
|
||||
"test/scripts/docker-build-helper.test.ts",
|
||||
],
|
||||
],
|
||||
[
|
||||
"scripts/e2e/plugin-binding-command-escape.Dockerfile",
|
||||
[
|
||||
"src/docker-image-digests.test.ts",
|
||||
"test/scripts/docker-build-helper.test.ts",
|
||||
"test/scripts/docker-e2e-plan.test.ts",
|
||||
],
|
||||
],
|
||||
[
|
||||
"scripts/lib/package-dist-imports.mjs",
|
||||
[
|
||||
|
||||
Reference in New Issue
Block a user