ci: add automatic docker image building

This commit is contained in:
Michel Jonathan Schmitz
2020-10-07 16:22:48 +02:00
committed by Rainer Killinger
parent 1dbf4515fe
commit f2ca308a29
5 changed files with 73 additions and 2 deletions

View File

@@ -0,0 +1,4 @@
#!/usr/bin/env sh
# script returns string with everything after the last colon of $1 input
echo -n $1 | grep -oE '[^:]+$'

8
.gitlab/ci/getRegistryTag.sh Executable file
View File

@@ -0,0 +1,8 @@
#!/usr/bin/env sh
# script returns semantical versioning string linke 2.0.0 (if $1 is v2.0.0) or $1
if echo -n $1 | grep -Eq 'v[0-9]+\.[0-9]+\.[0-9]+'; then
echo $(echo -n "$1" | cut -c 2-);
else
echo $1;
fi

View File

@@ -0,0 +1,7 @@
#!/usr/bin/env sh
# If this is a pipeline of a version tag, also push this version
# as latest to the registry alias $2:latest
if echo -n $1 | grep -Eq 'v[0-9]+\.[0-9]+\.[0-9]+'; then
docker push $2:latest;
fi

29
.gitlab/ci/testCIScripts.sh Executable file
View File

@@ -0,0 +1,29 @@
#!/usr/bin/env sh
# test all CI scripts
SCRIPT_DIR=$(dirname "$0")
TAG_VERSION=$(sh $SCRIPT_DIR/getRegistryTag.sh "v1.0.0")
TAG_TEST=$(sh $SCRIPT_DIR/getRegistryTag.sh "TEST")
BRANCH_NAME=$(sh $SCRIPT_DIR/getRegistryBranch.sh "very:first:test")
# Leaving out pushAsLatestVersion.sh as its controll flow
# is based on the same condition as getRegistryTag.sh
if [ $TAG_VERSION != "1.0.0" ]; then
echo "ERROR in CI SCRIPT: $SCRIPT_DIR/getRegistryTag.sh"
return 1
fi
if [ $TAG_TEST != "TEST" ]; then
echo "ERROR in CI SCRIPT: $SCRIPT_DIR/getRegistryTag.sh"
return 2
fi
if [ $BRANCH_NAME != "test" ]; then
echo "ERROR in CI SCRIPT: $SCRIPT_DIR/getRegistryBranch.sh"
return 3
fi
return 0