aboutsummaryrefslogtreecommitdiffstats
path: root/deploy-ui-gcs/deploy.js
diff options
context:
space:
mode:
authorJan Tuomi <jans.tuomi@gmail.com>2022-02-06 17:08:22 +0200
committerJan Tuomi <jans.tuomi@gmail.com>2022-02-11 15:24:52 +0200
commit664e622fbb5d528e14d42da7baf9505b79f3d041 (patch)
tree7cb89d71aa9650a4c009be5c4be1f043a8797743 /deploy-ui-gcs/deploy.js
Initial commit
Diffstat (limited to 'deploy-ui-gcs/deploy.js')
-rw-r--r--deploy-ui-gcs/deploy.js46
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()