Adam Colvin
Adam Colvin

Reputation: 791

Installing gcloud on Travis CI

I'm following this tutorial on how to use Travis CI with Google Cloud for Continuous Deployments: https://cloud.google.com/solutions/continuous-delivery-with-travis-ci

When Travis builds, it tells me that the gcloud command is not found. Here's my .travis file:

sudo: false
language: python
cache:
  directories:
  - "$HOME/google-cloud-sdk/"
env:
- GAE_PYTHONPATH=${HOME}/.cache/google_appengine PATH=$PATH:${HOME}/google-cloud-sdk/bin
  PYTHONPATH=${PYTHONPATH}:${GAE_PYTHONPATH} CLOUDSDK_CORE_DISABLE_PROMPTS=1
before_install:
- openssl aes-256-cbc -K $encrypted_404aa45a170f_key -iv $encrypted_404aa45a170f_iv
  -in credentials.tar.gz.enc -out credentials.tar.gz -d
- if [ ! -d "${GAE_PYTHONPATH}" ]; then python scripts/fetch_gae_sdk.py $(dirname
  "${GAE_PYTHONPATH}"); fi
- if [ ! -d ${HOME}/google-cloud-sdk ]; then curl https://sdk.cloud.google.com | bash;
  fi
- tar -xzf credentials.tar.gz
- mkdir -p lib
- gcloud auth activate-service-account --key-file client-secret.json
install:
- gcloud config set project continuous-deployment-192112
- gcloud -q components update gae-python
- pip install -r requirements.txt -t lib/
script:
- python test_main.py
- gcloud -q preview app deploy app.yaml --promote
- python e2e_test.py

This is the same file provided by the example repository from the tutorial. The line that fails is:

- gcloud auth activate-service-account --key-file client-secret.json

Even though it's already checked for the SDK and installed it if it isn't there.

I've already tried adding - source ~/.bash_profile after the install, but this doesn't work.

Am I missing a command somewhere?

Upvotes: 2

Views: 1268

Answers (1)

griffithtp
griffithtp

Reputation: 11

I ran into the same issue and this has worked for me:

- if [ ! -d "$HOME/google-cloud-sdk" ]; then
      export CLOUD_SDK_REPO="cloud-sdk-$(lsb_release -c -s)";
      echo "deb http://packages.cloud.google.com/apt $CLOUD_SDK_REPO main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list;
      curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - ;
      sudo apt-get update && sudo apt-get install google-cloud-sdk;
  fi

The only issue however is since it needs sudo, it will run on gce which is much slower then ec2 https://docs.travis-ci.com/user/reference/overview/#Virtualisation-Environment-vs-Operating-System

Updated: This is the best solution - How to install Google Cloud SDK on Travis?

Upvotes: 1

Related Questions