我在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}
答案 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"