diff options
| author | Jan Tuomi <jans.tuomi@gmail.com> | 2022-02-06 17:08:22 +0200 |
|---|---|---|
| committer | Jan Tuomi <jans.tuomi@gmail.com> | 2022-02-11 15:24:52 +0200 |
| commit | 664e622fbb5d528e14d42da7baf9505b79f3d041 (patch) | |
| tree | 7cb89d71aa9650a4c009be5c4be1f043a8797743 /deploy-ui-gcs/deploy.js | |
Initial commit
Diffstat (limited to 'deploy-ui-gcs/deploy.js')
| -rw-r--r-- | deploy-ui-gcs/deploy.js | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/deploy-ui-gcs/deploy.js b/deploy-ui-gcs/deploy.js new file mode 100644 index 0000000..fb55118 --- /dev/null +++ b/deploy-ui-gcs/deploy.js @@ -0,0 +1,46 @@ +const PubSub = require("@google-cloud/pubsub") + +if (process.argv.length !== 3) { + console.log("called with:", process.argv) + throw new Error("Usage: node deploy.js REVISION") +} +const revision = process.argv[2] +const timeout = process.env.TIMEOUT ? Number(process.env.TIMEOUT) : 30000 + +setTimeout(() => { + console.error("Timed out") + process.exit(1) +}, timeout) + +const deploy = async () => { + const pubsub = new PubSub(); + const resultSubName = "deploy-ui-gcs-result-sub" + const deployTopicName = "deploy-ui-gcs" + + console.log("Deploying revision", revision); + console.log("Timing out after", timeout, "ms") + + const deployPublisher = pubsub.topic(deployTopicName).publisher() + await deployPublisher.publish(Buffer.from(JSON.stringify({ + revision, + }))) + + console.log("Waiting for deployment results for revision", revision) + + const sub = pubsub.subscription(resultSubName) + sub.on("message", message => { + const event = JSON.parse(message.data.toString("utf8")) + if (event.revision !== revision) return + + if (event.ok) { + console.log("Deployment ok for revision", revision) + message.ack() + process.exit(0) + } else { + console.error("Deployment failed for revision", revision) + process.exit(1) + } + }) +} + +deploy() |
