diff options
Diffstat (limited to '.gitlab/build.sh')
-rwxr-xr-x | .gitlab/build.sh | 24 |
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 |