2017-10-06 101 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

相关问题