From 7f4fd4efbb26ac634c40d36ab85e3928932d466e Mon Sep 17 00:00:00 2001 From: Adam Reese Date: Thu, 3 Nov 2016 17:29:06 -0700 Subject: [PATCH] ref(ci): cleanup ci deploy --- circle.yml | 33 ++------------------------- scripts/ci/deploy.sh | 53 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+), 31 deletions(-) create mode 100755 scripts/ci/deploy.sh diff --git a/circle.yml b/circle.yml index db4bec459..5e214f34b 100644 --- a/circle.yml +++ b/circle.yml @@ -44,38 +44,9 @@ deployment: release: tag: /.*/ commands: - # setup gcloud tools - - sudo /opt/google-cloud-sdk/bin/gcloud --quiet components update - - echo "${GCLOUD_SERVICE_KEY}" | base64 --decode > "${HOME}/gcloud-service-key.json" - - sudo /opt/google-cloud-sdk/bin/gcloud auth activate-service-account --key-file "${HOME}/gcloud-service-key.json" - - sudo /opt/google-cloud-sdk/bin/gcloud config set project "${PROJECT_NAME}" - - docker login -e 1234@5678.com -u _json_key -p "$(cat ${HOME}/gcloud-service-key.json)" https://gcr.io - - # build canary tiller image and push - - make docker-build VERSION="${CIRCLE_TAG}" - - docker push "gcr.io/kubernetes-helm/tiller:${CIRCLE_TAG}" - - docker push gcr.io/kubernetes-helm/tiller:canary - - # build canary helm binaries and push - - make build-cross - - make dist checksum VERSION="${CIRCLE_TAG}" - - sudo /opt/google-cloud-sdk/bin/gsutil cp ./_dist/* "gs://${PROJECT_NAME}" + - cd "${WORKDIR}" && ./scripts/ci/deploy.sh canary: branch: master commands: - # setup gcloud tools - - sudo /opt/google-cloud-sdk/bin/gcloud --quiet components update - - echo "${GCLOUD_SERVICE_KEY}" | base64 --decode > "${HOME}/gcloud-service-key.json" - - sudo /opt/google-cloud-sdk/bin/gcloud auth activate-service-account --key-file "${HOME}/gcloud-service-key.json" - - sudo /opt/google-cloud-sdk/bin/gcloud config set project "${PROJECT_NAME}" - - docker login -e 1234@5678.com -u _json_key -p "$(cat ${HOME}/gcloud-service-key.json)" https://gcr.io - - # build canary tiller image and push - - make docker-build - - docker push gcr.io/kubernetes-helm/tiller:canary - - # build canary helm binaries and push - - make build-cross - - make dist checksum VERSION=canary - - sudo /opt/google-cloud-sdk/bin/gsutil cp ./_dist/* "gs://${PROJECT_NAME}" + - cd "${WORKDIR}" && ./scripts/ci/deploy.sh diff --git a/scripts/ci/deploy.sh b/scripts/ci/deploy.sh new file mode 100755 index 000000000..edb69d239 --- /dev/null +++ b/scripts/ci/deploy.sh @@ -0,0 +1,53 @@ +#!/usr/bin/env bash + +# Copyright 2016 The Kubernetes Authors All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +set -euo pipefail + +: ${GCLOUD_SERVICE_KEY:?"GCLOUD_SERVICE_KEY environment variable is not set"} +: ${PROJECT_NAME:?"PROJECT_NAME environment variable is not set"} + +VERSION= +if [[ -n "${CIRCLE_TAG:-}" ]]; then + VERSION="${CIRCLE_TAG}" +elif [[ "${CIRCLE_BRANCH:-}" == "master" ]]; then + VERSION="canary" +else + exit 1 +fi + +echo "Updating gcloud components" +sudo /opt/google-cloud-sdk/bin/gcloud --quiet components update + +echo "Configuring gcloud authentication" +echo "${GCLOUD_SERVICE_KEY}" | base64 --decode > "${HOME}/gcloud-service-key.json" +sudo /opt/google-cloud-sdk/bin/gcloud auth activate-service-account --key-file "${HOME}/gcloud-service-key.json" +sudo /opt/google-cloud-sdk/bin/gcloud config set project "${PROJECT_NAME}" +docker login -e 1234@5678.com -u _json_key -p "$(cat ${HOME}/gcloud-service-key.json)" https://gcr.io + +echo "Building the tiller image" +make docker-build VERSION="${VERSION}" + +echo "Pushing image to gcr.io" +if [[ "${VERSION}" != "canary" ]]; then + docker push "gcr.io/kubernetes-helm/tiller:${VERSION}" +fi +docker push gcr.io/kubernetes-helm/tiller:canary + +echo "Building helm binaries" +make build-cross +make dist checksum VERSION="${VERSION}" + +echo "Pushing binaries to gs bucket" +sudo /opt/google-cloud-sdk/bin/gsutil cp ./_dist/* "gs://${PROJECT_NAME}"