summaryrefslogtreecommitdiff
path: root/.gitlab/build.sh
diff options
context:
space:
mode:
authorVarac <varac@leap.se>2017-09-25 16:52:04 +0200
committercyBerta <cyberta@riseup.net>2017-09-29 08:56:24 +0200
commite0aa1cd978f978ed3ac90adaf8415b60ce039c79 (patch)
tree654bb43e24f219b0d493951052639cbe774a6b83 /.gitlab/build.sh
parent65dbc986bf6d965591971dafd10b69f9fe04682c (diff)
Build docker images from CI
Diffstat (limited to '.gitlab/build.sh')
-rwxr-xr-x.gitlab/build.sh24
1 files changed, 24 insertions, 0 deletions
diff --git a/.gitlab/build.sh b/.gitlab/build.sh
new file mode 100755
index 00000000..cc63075d
--- /dev/null
+++ b/.gitlab/build.sh
@@ -0,0 +1,24 @@
+#!/bin/bash
+#
+# Build script for the gitlab ci.
+#
+# usage: build.sh DIR [TAG]
+#
+# Will run docker build in DIR with DIR/Dockerfile or
+# DIR/TAG.dockerfile if TAG is given.
+#
+# Assumes CI specific environment variables to be set:
+# CI_REGISTRY_IMAGE
+# LAST_COMMIT (fetched from the gitlab api in before_script hook)
+#
+
+DIR=$1
+TAG=${2:-latest}
+DOCKERFILE=docker/${DIR}/${2:-Dockerfile}${2:+.dockerfile}
+TARGET=${CI_REGISTRY_IMAGE}/${DIR}:${TAG}
+
+if git diff "$LAST_COMMIT" HEAD --name-only | egrep "($DOCKERFILE|^.gitlab)"; then
+ docker login -u gitlab-ci-token -p "$CI_JOB_TOKEN" "$CI_REGISTRY"
+ docker build -t "$TARGET" -f "$DOCKERFILE" docker/
+ docker push "$TARGET"
+fi