UNPKG

beekeeper-util

Version:

CLI utility for managing the beekeeper-service

69 lines (60 loc) 3.32 kB
const bindAll = require("lodash/fp/bindAll") const BeekeeperDeployment = require("../models/beekeeper-deployment") class BeekeeperService { constructor({ beekeeperUri, beekeeperEnabled, spinner }) { bindAll(Object.getOwnPropertyNames(BeekeeperService.prototype), this) this.beekeeperUri = beekeeperUri this.beekeeperEnabled = beekeeperEnabled if (!this.beekeeperUri) throw new Error("Missing beekeeperUri") this.spinner = spinner } async createDeployment({ projectName, projectOwner, isPrivate, projectVersion }) { const { spinner, beekeeperUri } = this if (!this.beekeeperEnabled) return const beekeeperDeployment = new BeekeeperDeployment({ projectName, projectOwner, isPrivate, beekeeperUri }) if (spinner) spinner.start("Beekeeper: Creating deployment") await beekeeperDeployment.init() await beekeeperDeployment.create({ projectVersion }) if (spinner) spinner.log("Beekeeper: Deployment created") } async deleteDeployment({ projectName, projectOwner, isPrivate, projectVersion }) { const { spinner, beekeeperUri } = this const beekeeperDeployment = new BeekeeperDeployment({ projectName, projectOwner, isPrivate, beekeeperUri }) if (spinner) spinner.start("Beekeeper: Deleting deployment") await beekeeperDeployment.init() await beekeeperDeployment.delete({ projectVersion }) if (spinner) spinner.log("Beekeeper: Deployment deleted") } async updateDeployment({ projectName, projectOwner, isPrivate, projectVersion, dockerUrl }) { const { spinner, beekeeperUri } = this const beekeeperDeployment = new BeekeeperDeployment({ projectName, projectOwner, isPrivate, beekeeperUri }) if (spinner) spinner.start("Beekeeper: Updating deployment") await beekeeperDeployment.init() await beekeeperDeployment.update({ projectVersion, dockerUrl }) if (spinner) spinner.log("Beekeeper: Deployment updated") } async webhookDeployment({ projectName, projectOwner, isPrivate, projectVersion, webhookType, ciPassing }) { const { spinner, beekeeperUri } = this const beekeeperDeployment = new BeekeeperDeployment({ projectName, projectOwner, isPrivate, beekeeperUri }) if (spinner) spinner.start("Beekeeper: Updating webhook") await beekeeperDeployment.init() await beekeeperDeployment.webhook({ projectVersion, webhookType, ciPassing }) if (spinner) spinner.log("Beekeeper: Webhook updated") } async getDeployment({ projectName, projectOwner, projectVersion, filterTags }) { const { beekeeperUri } = this const beekeeperDeployment = new BeekeeperDeployment({ projectName, projectOwner, beekeeperUri }) await beekeeperDeployment.init() return await beekeeperDeployment.get({ tag: projectVersion, filterTags }) } async tagDeployment({ projectName, projectOwner, isPrivate, projectVersion, tagName }) { if (!tagName) throw new Error("Missing tagName") const { spinner, beekeeperUri } = this const beekeeperDeployment = new BeekeeperDeployment({ projectName, projectOwner, isPrivate, beekeeperUri }) if (spinner) spinner.start("Beekeeper: Creating tag") await beekeeperDeployment.init() await beekeeperDeployment.tag({ projectVersion, tagName }) if (spinner) spinner.log("Beekeeper: Tag created") } } module.exports = BeekeeperService