From 84a43a3d2874be3cb299b5bfb61ca7d83a5c8b63 Mon Sep 17 00:00:00 2001 From: "Kevin P. Fleming" Date: Mon, 11 Mar 2019 15:26:52 -0400 Subject: [PATCH 1/3] Enable push of images to DockerHub This patch will enable pushes of any successful builds (using Travis-CI) of the 'master' branch to the proper repository on DockerHub. The credentials necessary are provided via environment variables configured in the Travis-CI settings. Addresses issue #27 Signed-off-by: Kevin P. Fleming --- .travis.yml | 5 +++++ Makefile | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 79d0c51..4ea1efc 100644 --- a/.travis.yml +++ b/.travis.yml @@ -24,3 +24,8 @@ script: - make clean && make build-multistage - docker images - docker run `make version` --help + +after_success: + - if [[ "$TRAVIS_BRANCH" == "master" ]]; then + docker login -u "$DOCKER_USER" -p "$DOCKER_PASSWORD" && make tag && make push; + fi diff --git a/Makefile b/Makefile index 3a6001d..e60c60e 100644 --- a/Makefile +++ b/Makefile @@ -4,7 +4,7 @@ bin ?= goldpinger pkg ?= "github.com/bloomberg/goldpinger" tag = $(name):$(version) goos ?= ${GOOS} -namespace ?= "" +namespace ?= "bloomberg/" files = $(shell find . -iname "*.go") @@ -38,7 +38,7 @@ push: run: go run ./cmd/goldpinger/main.go - + version: @echo $(tag) From 0472791dae75e1777c106de87a113d286622fbc2 Mon Sep 17 00:00:00 2001 From: "Kevin P. Fleming" Date: Mon, 11 Mar 2019 16:28:16 -0400 Subject: [PATCH 2/3] Use a 'deploy' stage and script Pushing to DockerHub from the 'after_success' phase was unreliable (triggered by PRs) so this patch changes the process to use a 'deploy' stage script instead. Signed-off-by: Kevin P. Fleming --- .travis.yml | 9 +++++---- docker_deploy.sh | 4 ++++ 2 files changed, 9 insertions(+), 4 deletions(-) create mode 100755 docker_deploy.sh diff --git a/.travis.yml b/.travis.yml index 4ea1efc..1eba012 100644 --- a/.travis.yml +++ b/.travis.yml @@ -25,7 +25,8 @@ script: - docker images - docker run `make version` --help -after_success: - - if [[ "$TRAVIS_BRANCH" == "master" ]]; then - docker login -u "$DOCKER_USER" -p "$DOCKER_PASSWORD" && make tag && make push; - fi +deploy: + provider: script + script: bash docker_deploy.sh + on: + branch: master diff --git a/docker_deploy.sh b/docker_deploy.sh new file mode 100755 index 0000000..b3987dd --- /dev/null +++ b/docker_deploy.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +docker login -u "$DOCKER_USER" -p "$DOCKER_PASSWORD" && make tag && make push + From 16a1d5274132fd28d829340d93c117c99d80e3e8 Mon Sep 17 00:00:00 2001 From: "Kevin P. Fleming" Date: Tue, 12 Mar 2019 09:15:22 -0400 Subject: [PATCH 3/3] Deployment improvements * Only deploy from tags * Only attempt deployment if DOCKER_PASSWORD has been set in environment * Don't cleanup working directory before deployment Signed-off-by: Kevin P. Fleming --- .travis.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 1eba012..e5cbde6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -28,5 +28,7 @@ script: deploy: provider: script script: bash docker_deploy.sh + skip_cleanup: true on: - branch: master + tags: true + condition: -n "$DOCKER_PASSWORD"