无人机YAML如果条件不起作用

时间:2017-08-07 07:47:40

标签: build continuous-integration yaml drone

我在Drone YAML中有条件逻辑,但我看到控件不在其中,即使无人机分支是“开发”。如何解决这个问题,我做错了什么?

commands:
      - "./gradlew clean build"
      - echo "${DRONE_BRANCH}"
      - echo "${DRONE_BRANCH}" = "develop"
      - >
        if [ "${DRONE_BRANCH}" = "develop" ]; then
            export CLOUD_USER_KEY=$STAGE_CLOUD_USER_KEY
            export HOST_NAME="11.22.111.111"
        fi
      - >
        if [ "${DRONE_BRANCH}" = "master" ]; then
            export CLOUD_USER_KEY=$PROD_CLOUD_USER_KEY
            export HOST_NAME="11.22.111.112"
        fi

      - echo "CLOUD_USER_KEY "${CLOUD_USER_KEY}
      - echo "HOST NAME "${HOST_NAME}

1 个答案:

答案 0 :(得分:0)

>折叠块标量的YAML指示符。 YAML中的折线意味着两个非空连续线之间的换行符变为空格。在将bash命令写入YAML时,这不是您想要的!

例如,这个简单的折叠块标量(仅使用原始YAML文件的一部分):

- >
  export CLOUD_USER_KEY=$STAGE_CLOUD_USER_KEY
  export HOST_NAME="11.22.111.111"

将被解析为:

- "export CLOUD_USER_KEY=$STAGE_CLOUD_USER_KEY export HOST_NAME=\"11.22.111.111\"\n"

哪个不行。使用 literal 块标量代替保留行结尾:

- |
  export CLOUD_USER_KEY=$STAGE_CLOUD_USER_KEY
  export HOST_NAME="11.22.111.111"