From 9d34061ced850e03eb2fc7cfb5482ed5cc299f82 Mon Sep 17 00:00:00 2001 From: Torin Sandall Date: Wed, 9 Nov 2016 11:49:39 -0800 Subject: [PATCH] Add automatic Docker image build and push --- .travis.yml | 25 ++++++++++++++++++++++--- Makefile | 9 +++++++++ build/utils.sh | 13 +++++++++++++ 3 files changed, 44 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index bd96f4f65b..9a61775e14 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,24 @@ +sudo: required + language: go + +env: + global: + - secure: hqXso0qAPRWKHIRqDFsLAa26fQX33fifTGasVQ92o1ApxgSz6b1lTAwNKn+VBpdoKjcP78B/P7mCgSsuV3TpahvkZVr0gKq8L7OdyKYIV5/DwTHQw7iMRPUaC7Cfo3vFDpilOUwt2suiWV8yg5o1bAwXZ+u68kYfz5V3ZlUE25agoo9NIBBYtPWpqn5NGMnnxekSfgnQUfRq0iXZpNMKHNCMhkkA575SfStcnMPVTZVWKnHD3c0ST9OiCaN5ImowoQLWf669WC8gAd1Em4dtkbQd1YF4pdqWk4DZvmGyxqmuLyeo9VDjimp+EcB0rWhyyf/2QQEKi1G1iXd4s3cxfveYm2g2khm3mHvZ0MhlE2nw15j4FAdJdiXHidNK+VBqi06TUu9KuV1CLV/Ml9SdhiwyhXgwNvZiSvQ9mvSNuNOGaEw8Aa35pcdU8+LO22tzS8NU23rTEcd+uTqWHqNG45eN4a7VxMiqQ2dDjv7Uh95YGjzh5Ex0VvcYDH2emszXAmWBq93gY5cjOtiEP1N0Ey/q72+RDE39Hd904IsmeeSPcoWcCcZounT3raEPA4YnsP4MatZdyWsEXxaqmzxUoSIwA8qlYAtD99UPaXCr8SahWPzll5lSldiOJqdjtvcp+w6+x1pANdTv+megLyHryDlfpu5CwTG7Tm32Fiv7OOs= + - secure: M41h0yMdC/klq6destS/tABpxdKJaYj1CAPfh0LwT+h7mPv1sO0k8f3N74pkxeOT57iFq/H7qt4hpYYQN7kjOUWm4wJnoI6aWY5zzyQpoXKTNcjQOylCysbULyKVXVDhW69d+QkpEW8D+ppbjHMQhVTw3MuhT805b+j/MFaIKHd/qMzVBFNWvI6xz1fwbP/o7lqhcLzuKewGxnwCvJ0+gPhO5ncCsh+yfu2v8ff70h0PS25SH/6aTHAY5SB5OzxTSIwXfE0qzr4QIas0iQ1o6woqZS39nQ7m5ifSrkobO3mdD1+9l8RSfAXRptwpodNJaMOA68Z4FK1lV1Kvxx78CCQrelVtZFdh68wRZJ1bJuNqUs5HbJw9tsQ7qxv7aYEwZ9ooVH+MzZokAQZ4Ee/BxHbCTDivqgAdhzJsW8Q/trHoMc9kCzE37rT43VjqbQpdYHcHSXX4GjKN8zgOMp8cIYfdH6zchItbiZGcZbnVaAoqFxTA4a1cCw6Hpcd5Cj4s09cYYCCdOBfo5XmSBbFzU5ECdO/7qULAYeIAr1cSX+7bB5t0p/F/j5BJiDOxEVbcnJpoG8pzV6INvblgJ75eGxr6uCwi/hFMLlVbPWVBy6QP8Np5lo8+W1/VKTKI8QK/ZQdby8yhyJQ4ttdoGJfC6ER9N3J6rqwCw3dWTPx+M/A= + - secure: O4yBjNl0TgbZC1YyCpP7yVhNtmfBMs+npdb5rDOC0r+VtKND0qB09z/Qyuqg+iey6HfBVNJLl+s5BsrgRTDM6xbF3pcwHUeKp+TSjeX3vbLJNscolyBn8kkx1Q+mSwb5+e810zBYqr8sVl28f04WCxzdHYo+G16haz1BIYa3xT7kGRCSftZbzxR9PUrJhb9e6ai8njCwrdA8OKL1O08zU3r2t5J3WDKuIPsbF0HWmB08ZqnSI2JtCLibcMHXJtJyWCI9tCDNeSjOUrO59jqjtT58zLtPAph8sT78HGxHxT6vtHK/S/qtr/MUYU3zM9SLgqDwfOeQmJ1QB+0BlvxweAdiyVCDGIa8lz2U2YhK/XlklelWBbWuMfIGEm8P/T2zNUhHgQI8TJd1KXR1NxAcOIZJq7k2qkFFINOTz+PXnbGjS0YVmkEVayAwqXo5vBRVEQ/Iv9oEeJYBJXZ998XtsA3EgK78vYNppigYM0hHMlBMRZzPq3s4zX2MFFF64hAP+yORwFrPAGexYxiG4gyfjRcFlDJXT4NSiMz77WkiPa7w+nnCAe60Zq49lSXchMmOie/F/BWAsLtG3sA5Q7qq0VbY46rob+qZ2FYKSu1zj2VHK19OFB9v5RVKTpFE51x4uKlAFDkMeopCFBvJE02Wco7598qjkcj9WNCsvbdTZUQ= + +services: +- docker + go: - - 1.6 - - 1.7 -after_success: make perf-regression +- 1.6 +- 1.7 + +after_success: +- make perf-regression +- if [[ is_travis_push_env -eq 1 ]]; then docker login -e $DOCKER_EMAIL -u $DOCKER_USER -p $DOCKER_PASS; fi +- if [[ is_travis_push_env -eq 1 ]]; then make image-quick; fi +- if [[ is_travis_push_env -eq 1 ]]; then make push; fi +- if [[ is_travis_push_env -eq 1 ]]; then make tag-latest; fi +- if [[ is_travis_push_env -eq 1 ]]; then make push-latest; fi diff --git a/Makefile b/Makefile index 5ef26a53be..cfcb4e7624 100644 --- a/Makefile +++ b/Makefile @@ -51,12 +51,21 @@ build: generate image: @$(MAKE) build GOOS=linux + @$(MAKE) image-quick + +image-quick: sed -e 's/GOARCH/$(GOARCH)/g' Dockerfile.in > .Dockerfile_$(GOARCH) docker build -t $(IMAGE):$(VERSION) -f .Dockerfile_$(GOARCH) . push: docker push $(IMAGE):$(VERSION) +tag-latest: + docker tag $(IMAGE):$(VERSION) $(IMAGE):latest + +push-latest: + docker push $(IMAGE):latest + install: generate $(GO) install -ldflags $(LDFLAGS) diff --git a/build/utils.sh b/build/utils.sh index b928cab9c9..c7c14ec958 100644 --- a/build/utils.sh +++ b/build/utils.sh @@ -19,3 +19,16 @@ function opa::go_files_in_package() { echo $dir/$file done } + +function is_travis_push_env() { + + if [ "$TRAVIS_GO_VERSION" != "1.7" ]; then + return 0 + fi + + if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then + return 0 + fi + + return 1 +}