33 lines
791 B
JavaScript
33 lines
791 B
JavaScript
const required = [
|
|
'ENVIRONMENT',
|
|
'STACK_NAME',
|
|
'RELEASE_ID',
|
|
'COMMIT_SHA',
|
|
'WEB_IMAGE',
|
|
'PUBLIC_HOST',
|
|
'TRAEFIK_NETWORK',
|
|
'SWARM_MANAGER_HOST',
|
|
'SWARM_SSH_USER',
|
|
];
|
|
|
|
const missing = required.filter((name) => !process.env[name]);
|
|
if (missing.length > 0) {
|
|
console.error(`Missing required deploy variables: ${missing.join(', ')}`);
|
|
process.exit(1);
|
|
}
|
|
|
|
if (!/@sha256:[a-f0-9]{64}$/i.test(process.env.WEB_IMAGE ?? '')) {
|
|
console.error(`WEB_IMAGE must be pinned by immutable digest, got: ${process.env.WEB_IMAGE}`);
|
|
process.exit(1);
|
|
}
|
|
|
|
console.log(
|
|
JSON.stringify({
|
|
event: 'predeploy_check_passed',
|
|
environment: process.env.ENVIRONMENT,
|
|
stack: process.env.STACK_NAME,
|
|
releaseId: process.env.RELEASE_ID,
|
|
commitSha: process.env.COMMIT_SHA,
|
|
}),
|
|
);
|