diff --git a/.gitignore b/.gitignore index 761dd53..d7835d6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,3 @@ .vscode/settings.json **/.vscode -*-build.sh *.yml \ No newline at end of file diff --git a/build.sh b/build.sh new file mode 100644 index 0000000..32a811c --- /dev/null +++ b/build.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +set -eu + +if [ $# -lt 2 ] +then + echo "Usage: build.sh core|webapp serial [master|final|pre-final] [buildcontext]" + echo "Example: build.sh core ABC123456789DEF final" + echo "If no branch is given, 'master' will be built by default." + echo "If no buildcontext is given, it will build from git repository. Normally, you do not need to specify this." + exit 1 +fi + +case "$1" in + core) + mainpackage="kopano-server" + ;; + webapp) + mainpackage="kopano-webapp" + ;; + *) + echo "Invalid component." + exit 1 +esac + +component=${1,,} +serial=$2 +branch=${3-master} +branch=${branch,,} +defaulturl="https://github.com/ZokRadonh/KopanoDocker.git#:" +buildcontext_base="${4-${defaulturl}}" + +# get current version to brand and tag the image correctly +currentVersion=$(curl -s -S -L https://serial:$serial@download.kopano.io/supported/$component:/$branch/Debian_9.0/Packages.gz |\ + gzip -d | grep -A 8 "^Package: $mainpackage$" | awk '/Version/ { print $2 }') + +currentVersionDocker=$(echo $currentVersion | sed 's/+/plus/') + +# check if buildproxy helper container is running +isproxyup=$(docker ps | grep kopano_buildproxy | wc -l) + +if [ $isproxyup -eq 0 ] +then + echo "Build proxy container not runnning - now building..." + docker build -t kopano_buildproxy ${buildcontext_base}repoproxy + echo "Start building proxy..." + docker run --rm -ti -d -e KOPANO_SERIAL=$serial --network buildkopano_bnet --network-alias buildproxy kopano_buildproxy +fi + +# only tag the master branch with ":latest" +if [ "$branch" == "master" ] +then + tagLatest="-t zokradonh/kopano_$component:latest" +else + tagLatest=" " +fi + +# build it +echo "Start building kopano $component image version ($currentVersion)..." +docker build \ + --build-arg KOPANO_REPOSITORY_BRANCH=$branch \ + --build-arg KOPANO_${component^^}_VERSION=$currentVersion \ + $tagLatest \ + -t zokradonh/kopano_$component:$currentVersionDocker \ + -t zokradonh/kopano_$component:latest-$branch \ + --network buildkopano_bnet \ + ${buildcontext_base}${component} \ No newline at end of file diff --git a/master-push.sh b/master-push.sh new file mode 100644 index 0000000..01236e9 --- /dev/null +++ b/master-push.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +if [ $# -lt 2 ] +then + echo "Usage: master-push.sh core|webapp version" + echo "Example: master-push.sh core 3.4.17.1565plus895.1" + exit 1 +fi + +component=$1 +version=$2 + +docker push zokradonh/kopano_${component}:latest +docker push zokradonh/kopano_${component}:latest-master +docker push zokradonh/kopano_${component}:$version