#!/bin/bash set -e # Inspired by https://segment.com/blog/ci-at-segment/ deploy_tag() { # Find our individual versions from the tags if [ -n "$(echo $CIRCLE_TAG | grep -E 'v.*\..*\..*')" ] then major=$(echo ${CIRCLE_TAG//v} | cut -d. -f1) minor=$(echo ${CIRCLE_TAG//v} | cut -d. -f2) patch=$(echo ${CIRCLE_TAG//v} | cut -d. -f3) major_version_tag=$major minor_version_tag=$major.$minor patch_version_tag=$major.$minor.$patch tag_list="$major_version_tag $minor_version_tag $patch_version_tag" else tag_list=$CIRCLE_TAG fi # Tag the new image with major, minor and patch version tags. for version in $tag_list do echo "==> tagging $version" docker tag coralproject/talk:latest coralproject/talk:$version docker tag coralproject/talk:latest-onbuild coralproject/talk:$version-onbuild done # Push each of the tags to dockerhub, including latest for version in $tag_list do echo "==> pushing $version" docker push coralproject/talk:$version docker push coralproject/talk:$version-onbuild done } ARGS="" if [[ -n "$CIRCLE_SHA1" ]] then ARGS="--build-arg REVISION_HASH=${CIRCLE_SHA1}" fi # build the repo, including the onbuild tagged versions. docker build -t coralproject/talk:latest ${ARGS} -f Dockerfile . docker build -t coralproject/talk:latest-onbuild ${ARGS} -f Dockerfile.onbuild . if [ "$1" = "deploy" ] then if [[ -n "$DOCKER_USER" && -n "$DOCKER_PASS" ]] then # Log the Docker Daemon in docker login -u $DOCKER_USER -p $DOCKER_PASS fi # deploy based on the env if [ -n "$CIRCLE_TAG" ] then deploy_tag fi fi