UNPKG

briareus

Version:

Briareus assists with Feature Branch deploys to ECS

40 lines (35 loc) 1.22 kB
'use strict' const async = require('async'); const _ = require('lodash'); module.exports = function (client) { return function (options, cb) { function waitUntilProvisioned(variant, cb) { if (['provisioned', 'deployed'].indexOf(variant.data.status) > -1) return cb(null, variant); console.log('waiting for variant to be provisioned ...') client.variant.get({ slug: variant.data.slug }, (err, variant) => { if (variant.data.status === 'error') { return cb(new Error('deployment failed')); } return setTimeout(() => waitUntilProvisioned(variant, cb), 5000); }); } async.waterfall([ // Create Variant if one doesn't already exist (next) => { client.variant.get({ slug: options.data.slug }, (err, variant) => { if (variant) return next(null, variant); if (err && err.code !== 404) return next(err); client.variant.create(options, next); }); }, waitUntilProvisioned, (variant, next) => { let params = { data: options.data, slug: options.data.slug }; client.variant.deployment.create(params, next); }, ], cb); } }