From b7961ec888616f8f4d10f09bdb373bf38b2946f9 Mon Sep 17 00:00:00 2001 From: Jon Edvald Date: Wed, 27 Feb 2019 17:19:00 +0100 Subject: [PATCH] feat(cli): print ingress endpoints after deploying Closes #502 --- garden-service/src/tasks/deploy.ts | 41 ++++++++++++++++-------------- 1 file changed, 22 insertions(+), 19 deletions(-) diff --git a/garden-service/src/tasks/deploy.ts b/garden-service/src/tasks/deploy.ts index e4ddee6205..a098de98a1 100644 --- a/garden-service/src/tasks/deploy.ts +++ b/garden-service/src/tasks/deploy.ts @@ -11,7 +11,7 @@ import chalk from "chalk" import { includes } from "lodash" import { LogEntry } from "../logger/log-entry" import { BaseTask } from "./base" -import { Service, ServiceStatus, getServiceRuntimeContext } from "../types/service" +import { Service, ServiceStatus, getServiceRuntimeContext, getIngressUrl } from "../types/service" import { Garden } from "../garden" import { PushTask } from "./push" import { TaskTask } from "./task" @@ -117,7 +117,7 @@ export class DeployTask extends BaseTask { const runtimeContext = await getServiceRuntimeContext(this.garden, this.graph, this.service) - const status = await this.garden.actions.getServiceStatus({ + let status = await this.garden.actions.getServiceStatus({ service: this.service, log, hotReload, @@ -136,26 +136,29 @@ export class DeployTask extends BaseTask { msg: `Version ${versionString} already deployed`, append: true, }) - return status - } + } else { + log.setState(`Deploying version ${versionString}...`) + + try { + status = await this.garden.actions.deployService({ + service: this.service, + runtimeContext, + log, + force: this.force, + hotReload, + }) + } catch (err) { + log.setError() + throw err + } - log.setState(`Deploying version ${versionString}...`) + log.setSuccess({ msg: chalk.green(`Done (took ${log.getDuration(1)} sec)`), append: true }) + } - let result: ServiceStatus - try { - result = await this.garden.actions.deployService({ - service: this.service, - runtimeContext, - log, - force: this.force, - hotReload, - }) - } catch (err) { - log.setError() - throw err + for (const ingress of status.ingresses || []) { + log.info(chalk.gray("→ Ingress: ") + chalk.underline.gray(getIngressUrl(ingress))) } - log.setSuccess({ msg: chalk.green(`Done (took ${log.getDuration(1)} sec)`), append: true }) - return result + return status } }