Skip to content

Instantly share code, notes, and snippets.

@dhurley14
Forked from adilsoncarvalho/bitbucket-pipelines.yml
Created December 28, 2017 17:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dhurley14/37a90cd40b293b15992ac5c757278565 to your computer and use it in GitHub Desktop.
Save dhurley14/37a90cd40b293b15992ac5c757278565 to your computer and use it in GitHub Desktop.
Bitbucket Pipelines deployment to a Google Container Engine configuration
---
options:
docker: true
pipelines:
branches:
master:
- step:
script:
# Installing gcloud
- curl -o /tmp/google-cloud-sdk.tar.gz https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-161.0.0-linux-x86_64.tar.gz
- tar -xvf /tmp/google-cloud-sdk.tar.gz -C /tmp/
- /tmp/google-cloud-sdk/install.sh -q
- source /tmp/google-cloud-sdk/path.bash.inc
# Installing kubectl
- gcloud components install kubectl -q
# Authentication
- echo $GCLOUD_API_KEYFILE | base64 --decode --ignore-garbage > ./gcloud-api-key.json
- gcloud auth activate-service-account --key-file gcloud-api-key.json
- gcloud config set project $GCLOUD_PROJECT
- gcloud container clusters get-credentials $GCLOUD_CLUSTER --zone=$GCLOUD_ZONE
# Building images
- docker build . -t us.gcr.io/$GCLOUD_PROJECT/$PROJECT_NAME:$BITBUCKET_COMMIT
# Pushing SHA1 image
- gcloud docker -- push us.gcr.io/$GCLOUD_PROJECT/$PROJECT_NAME:$BITBUCKET_COMMIT
# Pushing latest image
- docker tag us.gcr.io/$GCLOUD_PROJECT/$PROJECT_NAME:$BITBUCKET_COMMIT us.gcr.io/$GCLOUD_PROJECT/$PROJECT_NAME:latest
- gcloud docker -- push us.gcr.io/$GCLOUD_PROJECT/$PROJECT_NAME:latest
# Deploy the image
- kubectl set image deployment <deployment-name> <container-name>=us.gcr.io/$GCLOUD_PROJECT/$PROJECT_NAME:$BITBUCKET_COMMIT --record --namespace=<namespace>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment