【问题标题】:Drone YAML if condition is not working如果条件不起作用,则使用 Drone YAML
【发布时间】:2018-01-14 10:59:43
【问题描述】:

我在 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}

【问题讨论】:

    标签: build continuous-integration yaml drone


    【解决方案1】:

    >folded 块标量的 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"
    

    【讨论】:

    • still not working 绝不是对问题的有效描述。由于您的 YAML 中有调试输出,因此请显示实际输出。
    猜你喜欢
    • 2018-10-12
    • 1970-01-01
    • 2016-06-02
    • 2012-07-11
    • 2014-02-21
    • 2022-07-07
    • 2019-02-11
    相关资源
    最近更新 更多