2016-08-04 43 views
4

Ich habe versucht, Google Cloud SDK auf Travis mit der folgenden .travis.ymlWie installiere ich Google Cloud SDK auf Travis?

sudo: required 

language: go 

- curl https://sdk.cloud.google.com | bash; 

Mein Versuch ist inspiriert von dieser Anleitung von Google zu installieren: https://cloud.google.com/solutions/continuous-delivery-with-travis-ci

Leider bekomme ich diese Ausgabe auf Travis:

$ curl https://sdk.cloud.google.com | bash; 
    % Total % Received % Xferd Average Speed Time Time  Time Current 
           Dload Upload Total Spent Left Speed 
100 421 0 421 0  0 17820  0 --:--:-- --:--:-- --:--:-- 60142 
Downloading Google Cloud SDK install script: https://dl.google.com/dl/cloudsdk/channels/rapid/install_google_cloud_sdk.bash 
######################################################################## 100.0% 
Running install script from: /tmp/tmp.uz8jP70e56/install_google_cloud_sdk.bash 
which curl 
curl -# -f https://dl.google.com/dl/cloudsdk/channels/rapid/google-cloud-sdk.tar.gz 
######################################################################## 100.0% 
Installation directory (this will create a google-cloud-sdk subdirectory) (/home/travis): 

Travis wartet 10 Minuten und beendet dann den Build. Es scheint, als ob es auf ein Installationsverzeichnis wartet.

Wie installiere ich das Google Cloud SDK auf Travis?

Antwort

10

Sie stoßen auf dieses Problem, da auf Travis CI keine Interaktion möglich ist. Daher ist das Installationsskript blockiert und wartet auf Eingabe und Travis CI tötet den Build nach 10 Minuten.

Der Trick besteht darin, die Eingabeaufforderungen bei der Installation des Google Cloud SDK zu deaktivieren. Dies kann durch Setzen der Umgebungsvariablen CLOUDSDK_CORE_DISABLE_PROMPTS auf 1 erfolgen.

Hier ist ein Beispielrezept in Ihrer .travis.yml Datei zu setzen (einschließlich es das Caching für eine schnellere nachfolgende Versionen):

cache: 
    directories: 
    - "$HOME/google-cloud-sdk/" 
script: 
    - gcloud version || true 
    - if [ ! -d "$HOME/google-cloud-sdk/bin" ]; then rm -rf $HOME/google-cloud-sdk; export CLOUDSDK_CORE_DISABLE_PROMPTS=1; curl https://sdk.cloud.google.com | bash; fi 
    # Add gcloud to $PATH 
    - source /home/travis/google-cloud-sdk/path.bash.inc 
    - gcloud version 

hoffe, das hilft!