fix(scripts): share Docker E2E artifact bounds

This commit is contained in:
Vincent Koc
2026-06-16 07:39:18 +02:00
parent 5afddf547e
commit e934e1cad7
5 changed files with 57 additions and 56 deletions
+2 -28
View File
@@ -1,11 +1,7 @@
// Docker E2E CI helper.
// Converts scheduler JSON into GitHub Actions outputs and compact markdown
// summaries so the workflow does not duplicate Docker E2E planning logic.
import fs from "node:fs";
import { parsePositiveInt } from "./lib/numeric-options.mjs";
const JSON_ARTIFACT_MAX_BYTES_ENV = "OPENCLAW_DOCKER_E2E_JSON_ARTIFACT_MAX_BYTES";
const DEFAULT_JSON_ARTIFACT_MAX_BYTES = 16 * 1024 * 1024;
import { readDockerE2eJsonArtifact } from "./lib/docker-e2e-json-artifacts.mjs";
function usage() {
return [
@@ -17,29 +13,7 @@ function usage() {
}
function readJson(file) {
return JSON.parse(readJsonArtifactText(file));
}
function readJsonArtifactText(file) {
const maxBytes = readPositiveIntEnv(JSON_ARTIFACT_MAX_BYTES_ENV, DEFAULT_JSON_ARTIFACT_MAX_BYTES);
const stat = fs.statSync(file);
if (!stat.isFile()) {
throw new Error(`JSON artifact is not a file: ${file}`);
}
if (stat.size > maxBytes) {
throw new Error(`JSON artifact exceeded ${maxBytes} bytes: ${file} (${stat.size} bytes)`);
}
const text = fs.readFileSync(file, "utf8");
const bytes = Buffer.byteLength(text, "utf8");
if (bytes > maxBytes) {
throw new Error(`JSON artifact exceeded ${maxBytes} bytes: ${file} (${bytes} bytes)`);
}
return text;
}
function readPositiveIntEnv(name, fallback) {
const raw = process.env[name];
return raw === undefined || raw === "" ? fallback : parsePositiveInt(raw, name);
return readDockerE2eJsonArtifact(file);
}
function boolOutput(value) {