Setup a working pipeline

* add tests to ensure function even after switching docker client api version
* switch docker client api version to remove import of Sirupsen and get rid of the casing workaround
* migrate from glide to dep to go modules
* rewrite ci workflow
  * only run publish on version tags
  * only run build on branches
  * update goreleaser config
  * disable automated latest tag push
* remove dependency to v2tec/docker-gobuilder
* remove dead code and files
* add golands .idea folder to gitignore
* add label to released docker images
* add test reporting, add some unit tests
* change test output dir
* fix goreleaser versions
* add debug output for circleci and goreleaser
* disable cgo
This commit is contained in:
Simon Aronsson 2019-04-04 23:08:44 +02:00
parent 98f916f29a
commit 1b82da1ab7
16 changed files with 450 additions and 362 deletions

View file

@ -1,53 +0,0 @@
#!/bin/bash
PROGNAME=$(basename $0)
VERSION_BUILD=$1
function error_exit
{
echo "${PROGNAME}: ${1:-"Unknown Error"}" 1>&2
exit 1
}
if [ "$1" = "" ]; then
error_exit "Please provide version as first argument."
fi
SEMVER=${VERSION_BUILD#*v}
VERSION=`echo $SEMVER | awk '{split($0,a,"."); print a[1]}'`
BUILD=`echo $SEMVER | awk '{split($0,a,"."); print a[2]}'`
PATCH=`echo $SEMVER | awk '{split($0,a,"."); print a[3]}'`
if [ "${VERSION}" = "" ]; then
echo "Please provide a semantic version."
exit 1
fi
if [ "${BUILD}" = "" ]; then
BUILD='0'
fi
if [ "${PATCH}" = "" ]; then
PATCH='0'
fi
push_docker() {
echo " -> push $1 $2"
docker tag $1 $2 || exit 1
docker push $2 || exit 1
}
push_all() {
IMAGE_NAME_VERSION=${1}${VERSION}.${BUILD}.${PATCH}
echo "Pulling $IMAGE_NAME_VERSION..."
docker pull ${IMAGE_NAME_VERSION} || exit 1
echo "Pushing $IMAGE_NAME_VERSION..."
push_docker ${IMAGE_NAME_VERSION} ${1}${VERSION}.${BUILD}
push_docker ${IMAGE_NAME_VERSION} ${1}${VERSION}
push_docker ${IMAGE_NAME_VERSION} ${1}latest
}
IMAGE_NAME=containrrr/watchtower
push_all ${IMAGE_NAME}:
push_all ${IMAGE_NAME}:armhf-
push_all ${IMAGE_NAME}:arm64v8-