From 426a9aab0647a2fe8ebb023b0c8e06b2bba482ac Mon Sep 17 00:00:00 2001 From: vlad Date: Thu, 22 Dec 2016 11:39:33 -0800 Subject: Configuration for deployment to Kubernetes --- src/main/scala/xyz.driver.sbt/SbtSettings.scala | 39 +++++++++++++++++++++++-- 1 file changed, 36 insertions(+), 3 deletions(-) diff --git a/src/main/scala/xyz.driver.sbt/SbtSettings.scala b/src/main/scala/xyz.driver.sbt/SbtSettings.scala index d86382b..f22889a 100644 --- a/src/main/scala/xyz.driver.sbt/SbtSettings.scala +++ b/src/main/scala/xyz.driver.sbt/SbtSettings.scala @@ -281,7 +281,7 @@ object SbtSettings extends AutoPlugin { git.useGitDescribe := true, git.baseVersion := "0.0.0", git.gitTagToVersionNumber := { - case VersionRegex(v, "SNAPSHOT") => + case VersionRegex(v, "SNAPSHOT") => // There are not committed changes at tagged commit val ver = Version(v) .map(_.withoutQualifier) .map(_.bump(sbtrelease.Version.Bump.Bugfix).string).getOrElse(versionFormatError) @@ -292,12 +292,12 @@ object SbtSettings extends AutoPlugin { Some(v) - case VersionRegex(v, s) => + case VersionRegex(v, s) => // Commit is ahead of the last tagged commit val ver = Version(v) .map(_.withoutQualifier) .map(_.bump(sbtrelease.Version.Bump.Bugfix).string).getOrElse(versionFormatError) - Some(s"$ver-$s-SNAPSHOT") + Some(s"$ver-$s") case _ => None } @@ -356,6 +356,39 @@ object SbtSettings extends AutoPlugin { // And then you can run "sbt docker:publish" } + + def deploymentConfiguration(imageName: String, + exposedPorts: Seq[Int], + clusterName: String = "dev-uw1a-1", + clusterZone: String = "us-west1-a", + gCloudProject: String = "driverinc-dev", + aggregateSubprojects: Boolean = false) = { + + val repositoryName = "gcr.io/" + gCloudProject + + dockerConfiguration(imageName, repositoryName, exposedPorts, aggregateSubprojects) + + project.settings( + Seq(resourceGenerators in Test += Def.task { + val variablesFile = file("deploy/variables.sh") + val contents = + s"""|#!/bin/sh + | + |export SCRIPT_DIR="$$( cd "$$( dirname "$$0" )" && pwd )" + |export GCLOUD_PROJECT=$gCloudProject + |export REGISTRY_PREFIX=$repositoryName + |export KUBE_CLUSTER_NAME=$clusterName + |export KUBE_CLUSTER_ZONE=$clusterZone + | + |export APP_NAME='$imageName' + |export VERSION='${version.value}' + |export IMAGE_ID="$${REGISTRY_PREFIX}/$${APP_NAME}:$${VERSION}" + |""".stripMargin + IO.write(variablesFile, contents) + Seq(variablesFile) + }.taskValue) + ) + } } } -- cgit v1.2.3