aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvlad <vlad@drivergrp.com>2016-12-22 11:39:33 -0800
committervlad <vlad@drivergrp.com>2016-12-22 11:39:33 -0800
commit426a9aab0647a2fe8ebb023b0c8e06b2bba482ac (patch)
tree69e7603ba6852f1cfaa910bb6e2dc30a590a1b43
parent3d09267a47efbde81a2a35aad7b6564b0777d2f2 (diff)
downloadsbt-settings-426a9aab0647a2fe8ebb023b0c8e06b2bba482ac.tar.gz
sbt-settings-426a9aab0647a2fe8ebb023b0c8e06b2bba482ac.tar.bz2
sbt-settings-426a9aab0647a2fe8ebb023b0c8e06b2bba482ac.zip
Configuration for deployment to Kubernetes
-rw-r--r--src/main/scala/xyz.driver.sbt/SbtSettings.scala39
1 files 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)
+ )
+ }
}
}