|
|
|
machine:
|
|
|
|
pre:
|
|
|
|
- curl -sSL https://s3.amazonaws.com/circle-downloads/install-circleci-docker.sh | bash -s -- 1.10.0
|
|
|
|
|
|
|
|
environment:
|
|
|
|
GOVERSION: "1.7.1"
|
|
|
|
GOPATH: "${HOME}/.go_workspace"
|
|
|
|
WORKDIR: "${GOPATH}/src/k8s.io/helm"
|
|
|
|
PROJECT_NAME: "kubernetes-helm"
|
|
|
|
|
|
|
|
services:
|
|
|
|
- docker
|
|
|
|
|
|
|
|
dependencies:
|
|
|
|
pre:
|
|
|
|
# remove old go files
|
|
|
|
- sudo rm -rf /usr/local/go
|
|
|
|
- rm -rf "$GOPATH"
|
|
|
|
|
|
|
|
override:
|
|
|
|
# install go
|
|
|
|
- wget "https://storage.googleapis.com/golang/go${GOVERSION}.linux-amd64.tar.gz"
|
|
|
|
- sudo tar -C /usr/local -xzf "go${GOVERSION}.linux-amd64.tar.gz"
|
|
|
|
|
|
|
|
# move repository to the canonical import path
|
|
|
|
- mkdir -p "$(dirname ${WORKDIR})"
|
|
|
|
- cp -R "${HOME}/helm" "${WORKDIR}"
|
|
|
|
|
|
|
|
# install dependencies
|
|
|
|
- cd "${WORKDIR}" && make bootstrap
|
|
|
|
|
|
|
|
post:
|
|
|
|
- go env
|
|
|
|
|
|
|
|
test:
|
|
|
|
override:
|
|
|
|
- cd "${WORKDIR}" && ./scripts/ci.sh:
|
|
|
|
parallel: true
|
|
|
|
|
|
|
|
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 VERSION="${CIRCLE_TAG}"
|
|
|
|
- sudo /opt/google-cloud-sdk/bin/gsutil cp ./_dist/* "gs://${PROJECT_NAME}"
|
|
|
|
|
|
|
|
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 VERSION=canary
|
|
|
|
- sudo /opt/google-cloud-sdk/bin/gsutil cp ./_dist/* "gs://${PROJECT_NAME}"
|