39 lines
1.2 KiB
JavaScript
Executable File
39 lines
1.2 KiB
JavaScript
Executable File
#!/usr/bin/env node
|
|
import { pathToFileURL } from "node:url";
|
|
import { resolve } from "node:path";
|
|
import { rollbackRelease } from "./lib/release-transaction.mjs";
|
|
|
|
async function main() {
|
|
const args = process.argv.slice(2);
|
|
if (args.length !== 7)
|
|
throw new Error(
|
|
"Usage: rollback-release.mjs <root> <target-release-id> <inbox-archive> <transaction-id> <smoke-command> <expected-current> <expected-fence>",
|
|
);
|
|
const [
|
|
root,
|
|
targetReleaseId,
|
|
archivePath,
|
|
transactionId,
|
|
smokeCommand,
|
|
expectedCurrentManifestDigest,
|
|
expectedFence,
|
|
] = args;
|
|
const receipt = await rollbackRelease({
|
|
root: resolve(root),
|
|
targetReleaseId,
|
|
archivePath: resolve(archivePath),
|
|
transactionId,
|
|
smokeCommand: resolve(smokeCommand),
|
|
expectedCurrentManifestDigest,
|
|
expectedFence: Number(expectedFence),
|
|
});
|
|
process.stdout.write(`${JSON.stringify(receipt)}\n`);
|
|
}
|
|
if (process.argv[1] && import.meta.url === pathToFileURL(process.argv[1]).href)
|
|
main().catch((error) => {
|
|
process.stderr.write(
|
|
`Release rollback failed: ${error instanceof Error ? error.message : "unknown error"}\n`,
|
|
);
|
|
process.exitCode = 1;
|
|
});
|