tile38/scripts/docker-push.sh
tidwall 4504ea75ac Updated Github Action files
Disabled some fence tests due to them hanging and
timing out in the Github Actions workflow, which is
something that did not happen with Travis CI.

I suspect that there's something up with Go routines
and or num of CPUs in the GH virtual environment.

Tests pass locally though
2020-11-03 14:36:07 -07:00

42 lines
1.3 KiB
Bash
Executable File

#!/bin/bash
set -e
cd $(dirname "${BASH_SOURCE[0]}")/..
# GIT_BRANCH is the current branch name
export GIT_BRANCH=$(git branch --show-current)
# GIT_VERSION - always the last verison number, like 1.12.1.
export GIT_VERSION=$(git describe --tags --abbrev=0)
# GIT_COMMIT_SHORT - the short git commit number, like a718ef0.
export GIT_COMMIT_SHORT=$(git rev-parse --short HEAD)
# DOCKER_REPO - the base repository name to push the docker build to.
export DOCKER_REPO=$DOCKER_USER/tile38
if [ "$GIT_BRANCH" != "master" ]; then
echo "Not pushing, not on master"
elif [ "$DOCKER_USER" == "" ]; then
echo "Not pushing, DOCKER_USER not set"
exit 1
elif [ "$DOCKER_LOGIN" == "" ]; then
echo "Not pushing, DOCKER_LOGIN not set"
exit 1
elif [ "$DOCKER_PASSWORD" == "" ]; then
echo "Not pushing, DOCKER_PASSWORD not set"
exit 1
else
push(){
docker tag $DOCKER_REPO:$GIT_COMMIT_SHORT $DOCKER_REPO:$1
docker push $DOCKER_REPO:$1
echo "Pushed $DOCKER_REPO:$1"
}
# docker login
echo $DOCKER_PASSWORD | docker login -u $DOCKER_LOGIN --password-stdin
# build the docker image
docker build -f Dockerfile -t $DOCKER_REPO:$GIT_COMMIT_SHORT .
if [ "$(curl -s https://hub.docker.com/v2/repositories/$DOCKER_REPO/tags/$GIT_VERSION/ | grep "digest")" == "" ]; then
# push the newest tag
push "$GIT_VERSION"
push "latest"
fi
push "edge"
fi