Public dry run dryrun-750f29790fe2

Source commit: 750f29790fe2046599fbe5b5d06fdb63d92fabff

Public tree identity: sha256:02326e08850bb287585789733ea5f3f153e1f7f3fd88afcc24e249107df91506
This commit is contained in:
Disasmer release dry run 2026-07-03 16:28:39 +02:00
commit de66658961
102 changed files with 31669 additions and 0 deletions

139
scripts/acceptance-report.js Executable file
View file

@ -0,0 +1,139 @@
#!/usr/bin/env node
const cp = require("child_process");
const fs = require("fs");
const os = require("os");
const path = require("path");
const repo = path.resolve(__dirname, "..");
const mode = process.argv[2] || "public";
function commandOutput(command, args = []) {
try {
return cp
.execFileSync(command, args, {
cwd: repo,
encoding: "utf8",
stdio: ["ignore", "pipe", "pipe"]
})
.trim();
} catch (_) {
return null;
}
}
function packageJson() {
return JSON.parse(
fs.readFileSync(path.join(repo, "vscode-extension/package.json"), "utf8")
);
}
function firstCommandOutput(candidates) {
for (const [command, args] of candidates) {
const output = commandOutput(command, args);
if (output) {
return { command, version: output };
}
}
return null;
}
function podmanReport() {
const version = commandOutput("podman", ["--version"]);
if (!version) {
return {
status: "incomplete",
version: null,
rootless: null,
incomplete_reason: "podman command is unavailable"
};
}
const rootless = commandOutput("podman", [
"info",
"--format",
"{{.Host.Security.Rootless}}"
]);
if (!rootless) {
return {
status: "incomplete",
version,
rootless: null,
incomplete_reason: "podman info did not report rootless status"
};
}
if (rootless !== "true") {
return {
status: "incomplete",
version,
rootless,
incomplete_reason: "podman is not running in rootless mode"
};
}
return {
status: "available",
version,
rootless,
incomplete_reason: null
};
}
const extensionPackage = packageJson();
const sourceCommit =
process.env.DISASMER_ACCEPTANCE_COMMIT || commandOutput("git", ["rev-parse", "HEAD"]);
const browserVersion = firstCommandOutput([
["chromium", ["--version"]],
["chromium-browser", ["--version"]],
["google-chrome", ["--version"]],
["firefox", ["--version"]]
]);
const report = {
kind: "disasmer_acceptance_environment",
mode,
commit: sourceCommit,
tree_status: (commandOutput("git", ["status", "--short"]) || "")
.split("\n")
.filter(Boolean),
generated_at: new Date().toISOString(),
os: {
platform: os.platform(),
release: os.release(),
kernel: os.release(),
arch: os.arch()
},
rust: {
rustc: commandOutput("rustc", ["--version"]),
cargo: commandOutput("cargo", ["--version"])
},
node: {
version: process.version
},
podman: podmanReport(),
postgres: {
version:
commandOutput("postgres", ["--version"]) ||
commandOutput("psql", ["--version"])
},
browser_harness: {
version: browserVersion && browserVersion.version,
command: browserVersion && browserVersion.command,
configured: process.env.DISASMER_BROWSER_HARNESS || "not-configured"
},
vscode_harness: {
smokes: [
"scripts/vscode-extension-smoke.js",
"scripts/vscode-f5-smoke.js"
],
engine: extensionPackage.engines && extensionPackage.engines.vscode,
extension_version: extensionPackage.version
},
windows_validation: process.env.DISASMER_WINDOWS_VALIDATION || "not-run"
};
const outDir = path.join(repo, "target/acceptance");
fs.mkdirSync(outDir, { recursive: true });
fs.writeFileSync(
path.join(outDir, `${mode}-environment.json`),
`${JSON.stringify(report, null, 2)}\n`
);
console.log(JSON.stringify(report, null, 2));