mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-06 16:30:57 +00:00
ci: shard release validation reruns
This commit is contained in:
@@ -104,10 +104,25 @@ describe("scripts/lib/docker-e2e-plan", () => {
|
||||
profile: RELEASE_PATH_PROFILE,
|
||||
releaseChunk: "plugins-runtime-install-b",
|
||||
});
|
||||
const bundledChannels = planFor({
|
||||
const bundledChannelsCore = planFor({
|
||||
includeOpenWebUI: true,
|
||||
profile: RELEASE_PATH_PROFILE,
|
||||
releaseChunk: "bundled-channels",
|
||||
releaseChunk: "bundled-channels-core",
|
||||
});
|
||||
const bundledChannelsUpdateA = planFor({
|
||||
includeOpenWebUI: true,
|
||||
profile: RELEASE_PATH_PROFILE,
|
||||
releaseChunk: "bundled-channels-update-a",
|
||||
});
|
||||
const bundledChannelsUpdateB = planFor({
|
||||
includeOpenWebUI: true,
|
||||
profile: RELEASE_PATH_PROFILE,
|
||||
releaseChunk: "bundled-channels-update-b",
|
||||
});
|
||||
const bundledChannelsContracts = planFor({
|
||||
includeOpenWebUI: true,
|
||||
profile: RELEASE_PATH_PROFILE,
|
||||
releaseChunk: "bundled-channels-contracts",
|
||||
});
|
||||
|
||||
expect(packageInstallOpenAi.lanes.map((lane) => lane.name)).toEqual(["install-e2e-openai"]);
|
||||
@@ -142,15 +157,32 @@ describe("scripts/lib/docker-e2e-plan", () => {
|
||||
"bundled-plugin-install-uninstall-6",
|
||||
"bundled-plugin-install-uninstall-7",
|
||||
]);
|
||||
expect(bundledChannels.lanes.map((lane) => lane.name)).toEqual(
|
||||
expect.arrayContaining([
|
||||
"plugin-update",
|
||||
"bundled-channel-telegram",
|
||||
"bundled-channel-update-acpx",
|
||||
]),
|
||||
);
|
||||
expect(bundledChannels.lanes.map((lane) => lane.name)).not.toContain("plugins");
|
||||
expect(bundledChannels.lanes.map((lane) => lane.name)).not.toContain("openwebui");
|
||||
expect(bundledChannelsCore.lanes.map((lane) => lane.name)).toEqual([
|
||||
"plugin-update",
|
||||
"bundled-channel-telegram",
|
||||
"bundled-channel-discord",
|
||||
"bundled-channel-slack",
|
||||
"bundled-channel-feishu",
|
||||
"bundled-channel-memory-lancedb",
|
||||
]);
|
||||
expect(bundledChannelsUpdateA.lanes.map((lane) => lane.name)).toEqual([
|
||||
"bundled-channel-update-telegram",
|
||||
"bundled-channel-update-discord",
|
||||
"bundled-channel-update-memory-lancedb",
|
||||
]);
|
||||
expect(bundledChannelsUpdateB.lanes.map((lane) => lane.name)).toEqual([
|
||||
"bundled-channel-update-slack",
|
||||
"bundled-channel-update-feishu",
|
||||
"bundled-channel-update-acpx",
|
||||
]);
|
||||
expect(bundledChannelsContracts.lanes.map((lane) => lane.name)).toEqual([
|
||||
"bundled-channel-root-owned",
|
||||
"bundled-channel-setup-entry",
|
||||
"bundled-channel-load-failure",
|
||||
"bundled-channel-disabled-config",
|
||||
]);
|
||||
expect(bundledChannelsCore.lanes.map((lane) => lane.name)).not.toContain("plugins");
|
||||
expect(bundledChannelsUpdateA.lanes.map((lane) => lane.name)).not.toContain("openwebui");
|
||||
});
|
||||
|
||||
it("keeps legacy release chunk names as aggregate aliases", () => {
|
||||
|
||||
@@ -79,6 +79,10 @@ describe("package artifact reuse", () => {
|
||||
expect(workflow).not.toContain("uses: ./.github/actions/docker-e2e-plan");
|
||||
expect(workflow).toContain("node scripts/test-docker-all.mjs --plan-json");
|
||||
expect(workflow).toContain("node scripts/docker-e2e.mjs github-outputs");
|
||||
expect(workflow).toContain("plan_docker_lane_groups:");
|
||||
expect(workflow).toContain("Docker E2E targeted lanes (${{ matrix.group.label }})");
|
||||
expect(workflow).toContain("DOCKER_E2E_LANES: ${{ matrix.group.docker_lanes }}");
|
||||
expect(workflow).toContain("name: docker-e2e-${{ steps.plan.outputs.artifact_suffix }}");
|
||||
});
|
||||
|
||||
it("uses Blacksmith Docker build caching for prepared E2E images", () => {
|
||||
@@ -126,7 +130,7 @@ describe("package artifact reuse", () => {
|
||||
|
||||
expect(workflow).toContain("package_acceptance_release_checks:");
|
||||
expect(workflow).toContain(
|
||||
"live_and_e2e_release_checks:\n needs: [resolve_target]\n permissions:\n actions: read",
|
||||
'live_and_e2e_release_checks:\n needs: [resolve_target]\n if: contains(fromJSON(\'["all","live-e2e"]\'), needs.resolve_target.outputs.rerun_group)',
|
||||
);
|
||||
expect(workflow).toContain("uses: ./.github/workflows/package-acceptance.yml");
|
||||
expect(workflow).toContain("package_ref: ${{ needs.resolve_target.outputs.ref }}");
|
||||
@@ -141,6 +145,9 @@ describe("package artifact reuse", () => {
|
||||
expect(workflow).toContain(
|
||||
"OPENCLAW_QA_CONVEX_SECRET_CI: ${{ secrets.OPENCLAW_QA_CONVEX_SECRET_CI }}",
|
||||
);
|
||||
expect(workflow).toContain("rerun_group:");
|
||||
expect(workflow).toContain("- live-e2e");
|
||||
expect(workflow).toContain("- qa-live");
|
||||
});
|
||||
|
||||
it("detects Matrix fail-fast support for older release refs", () => {
|
||||
@@ -177,6 +184,9 @@ describe("package artifact reuse", () => {
|
||||
'gh workflow run npm-telegram-beta-e2e.yml --ref "$CHILD_WORKFLOW_REF" "${args[@]}"',
|
||||
);
|
||||
expect(workflow).toContain('-f harness_ref="$TARGET_SHA"');
|
||||
expect(workflow).toContain("child_rerun_group=all");
|
||||
expect(workflow).toContain('-f rerun_group="$child_rerun_group"');
|
||||
expect(workflow).toContain("NORMAL_CI_RESULT: ${{ needs.normal_ci.result }}");
|
||||
expect(workflow).not.toContain("workflow_ref:");
|
||||
expect(workflow).not.toContain("inputs.workflow_ref");
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user