Files
projectbrain-Public/scripts/deployment-proof-state.mjs
T

17 lines
759 B
JavaScript

// Unknown identities and evidence from different container rows never prove a deployment.
export const compareDeploymentCommits = (local, remote) => {
const isCommit = (value) => /^[a-f0-9]{7,40}$/i.test(value ?? "");
if (!isCommit(local) || !isCommit(remote)) return "unknown";
return local.toLowerCase() === remote.toLowerCase() ? "current" : "stale";
};
export const isRunningContainer = (output, name, requiredPort) => output
.split(/\r?\n/)
.some((line) => {
const [actualName, ...fields] = line.trim().split(/\s+/);
const details = fields.join(" ");
return actualName === name && /^Up\b/.test(details)
&& !/\((?:unhealthy|health: starting)\)/.test(details)
&& (!requiredPort || details.includes(requiredPort));
});