ci: keep release checks compatible with stable refs

This commit is contained in:
Peter Steinberger
2026-04-27 13:59:41 +01:00
parent d0e4472616
commit fd4b59a906
11 changed files with 64 additions and 18 deletions

View File

@@ -57,6 +57,14 @@ describe("package Telegram live Docker E2E", () => {
it("keeps private QA harness imports local while using the installed package dist", () => {
const script = readFileSync(DOCKER_SCRIPT_PATH, "utf8");
const gatewayRpcClient = readFileSync(
path.resolve(TEST_DIR, "../../extensions/qa-lab/src/gateway-rpc-client.ts"),
"utf8",
);
const qaRuntimeApi = readFileSync(
path.resolve(TEST_DIR, "../../extensions/qa-lab/src/runtime-api.ts"),
"utf8",
);
expect(script).toContain('ln -sfnT "$openclaw_package_dir/dist" /app/dist');
expect(script).toContain('cp "$openclaw_package_dir/package.json" /app/package.json');
@@ -66,6 +74,9 @@ describe("package Telegram live Docker E2E", () => {
expect(script).toContain('"./extensions/qa-channel/api.ts"');
expect(script).toContain('pkg.exports["./plugin-sdk/qa-channel-protocol"]');
expect(script).toContain('"./extensions/qa-channel/src/protocol.ts"');
expect(gatewayRpcClient).toContain('from "openclaw/plugin-sdk/browser-node-runtime"');
expect(qaRuntimeApi).toContain('from "openclaw/plugin-sdk/browser-node-runtime"');
expect(gatewayRpcClient).not.toContain('from "openclaw/plugin-sdk/gateway-runtime"');
});
it("exposes installed package dependencies to the mounted QA harness", () => {
@@ -76,7 +87,7 @@ describe("package Telegram live Docker E2E", () => {
'local source="/npm-global/lib/node_modules/openclaw/node_modules/$name"',
);
expect(script).toContain('ln -sfn "$source" "$target"');
expect(script).toContain("link_installed_package_dependency \"$dependency\"");
expect(script).toContain('link_installed_package_dependency "$dependency"');
expect(script).toContain("@modelcontextprotocol/sdk");
expect(script).toContain("yaml");
expect(script).toContain("zod");

View File

@@ -1,4 +1,4 @@
import { mkdirSync, mkdtempSync, rmSync, writeFileSync } from "node:fs";
import { mkdirSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from "node:fs";
import { createServer as createNetServer } from "node:net";
import { tmpdir } from "node:os";
import { join } from "node:path";
@@ -309,6 +309,9 @@ describe("scripts/openclaw-cross-os-release-checks", () => {
expect(installedScript).toContain(
'from "file:///C:/Users/runner/AppData/Roaming/npm/node_modules/openclaw/dist/plugin-sdk/browser-node-runtime.js"',
);
expect(readFileSync("scripts/openclaw-cross-os-release-checks.ts", "utf8")).toContain(
"OPENCLAW_BROWSER_CONTROL_MODULE: pathToFileURL(overridePath).href",
);
});
it("normalizes Windows installed CLI paths to the cmd shim", () => {

View File

@@ -124,6 +124,21 @@ describe("package artifact reuse", () => {
);
});
it("detects Matrix fail-fast support for older release refs", () => {
const releaseWorkflow = readFileSync(RELEASE_CHECKS_WORKFLOW, "utf8");
const qaWorkflow = readFileSync(".github/workflows/qa-live-transports-convex.yml", "utf8");
expect(releaseWorkflow).toContain("matrix_args=(");
expect(releaseWorkflow).toContain(
'pnpm openclaw qa matrix --help 2>/dev/null | grep -F -q -- "--fail-fast"',
);
expect(releaseWorkflow).toContain("matrix_args+=(--fail-fast)");
expect(releaseWorkflow).toContain('pnpm openclaw qa matrix "${matrix_args[@]}"');
expect(qaWorkflow).toContain(
'pnpm openclaw qa matrix --help 2>/dev/null | grep -F -q -- "--fail-fast"',
);
});
it("names package acceptance Telegram as artifact-backed package validation", () => {
const workflow = readFileSync(PACKAGE_ACCEPTANCE_WORKFLOW, "utf8");