2017-10-06 95 views
0

我試圖運行下面的步驟,但它不執行「if」步驟(第5和6行)(我敢肯定,他們應該作爲測試目錄不存在,我嘗試了多種格式的bash如果,但他們都失敗。 有沒有辦法來測試比我使用?可以在「bitbucket」管道中使用「if」語句嗎?

- step: 
     name: Google Cloud SDK Installation 
     caches: 
     - pip 
     - cloudsdk 
     script: 
     - export ENV=dev 
     - source scripts/setenv.sh 
     - export CLOUDSDK_CORE_DISABLE_PROMPTS=1 
     - SDK_FILENAME=google-cloud-sdk-$SDK_VERSION-linux-x86_64.tar.gz 
     - if [ ! -e ${HOME}/google-cloud-sdk ] ; then `curl -O -J https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/${SDK_FILENAME}`; fi 
     - if [ ! -e ${HOME}/google-cloud-sdk ] ; then `tar -zxvf ${SDK_FILENAME} --directory ${HOME}`; fi 
     - export PATH=${PATH}:${HOME}/google-cloud-sdk/bin 
     - GAE_PYTHONPATH=${HOME}/google_appengine 
     - export PYTHONPATH=${PYTHONPATH}:${GAE_PYTHONPATH} 
     - python scripts/fetch_gae_sdk.py $(dirname "${GAE_PYTHONPATH}") 
+0

添加一個如果說如果1 = 1打印你好世界什麼的?我不熟悉bitbucket,但嘗試類似的東西可以工作 – Tomm

回答

1

基本上一個條件,BB管道支撐的條件下,無論是文件中使用-e或比較檢查。對於例如,這些行全都有效:

script: 
    - '[ ! -e "$BITBUCKET_CLONE_DIR/missing.txt" ] && echo "File does not exist"' 
    - 'if [ ! -e "$BITBUCKET_CLONE_DIR/missing.txt" ]; then echo "File does not exist"; fi' 
    - if [ ! -e "$BITBUCKET_CLONE_DIR/missing.txt" ]; then echo "File does not exist"; fi 

如示例所示,對於某些逗號因此如果Bb報告語法錯誤,則可能需要用單引號將行包裝(這裏僅用於演示目的),因此您應該試驗一下。

但是:你確定你真的想要$HOME?默認情況下,您處於$BITBUCKET_CLONE_DIR - 而不是$HOME - ,因此curl調用將SDK下載到$BITBUCKET_CLONE_DIR

相關問題