diff options
author | vlad <vlad@drivergrp.com> | 2016-12-22 11:39:33 -0800 |
---|---|---|
committer | vlad <vlad@drivergrp.com> | 2016-12-22 11:39:33 -0800 |
commit | 426a9aab0647a2fe8ebb023b0c8e06b2bba482ac (patch) | |
tree | 69e7603ba6852f1cfaa910bb6e2dc30a590a1b43 /src | |
parent | 3d09267a47efbde81a2a35aad7b6564b0777d2f2 (diff) | |
download | sbt-settings-426a9aab0647a2fe8ebb023b0c8e06b2bba482ac.tar.gz sbt-settings-426a9aab0647a2fe8ebb023b0c8e06b2bba482ac.tar.bz2 sbt-settings-426a9aab0647a2fe8ebb023b0c8e06b2bba482ac.zip |
Configuration for deployment to Kubernetes
Diffstat (limited to 'src')
-rw-r--r-- | src/main/scala/xyz.driver.sbt/SbtSettings.scala | 39 |
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) + ) + } } } |