【问题标题】:How to check either of variable exist in the gitlab rules?如何检查 gitlab 规则中是否存在变量?
【发布时间】:2022-11-09 00:57:17
【问题描述】:

我有一个如下所示的 gitlab 规则条件。

'$ACTION && $REGION && $ROLE_ARN && $PACKAGEURL && $ACTION == "new" && $CLOUD_PLATFORM == "aws" && $ROLE_ARN != "" && $PACKAGEURL != "" && $REGION != ""'

想要稍微修改一下,它应该检查上面是否存在 PACKAGEURL 或 BUILDRPMREQUIRED。

尝试保持如下但即使没有提供 PACKAGEURL 或 BUILDRPMREQUIRED 也会运行。

'$ACTION && $REGION && $ROLE_ARN && ($PACKAGEURL || $BUILDRPMREQUIRED) && $ACTION == "new" && $CLOUD_PLATFORM == "aws" && $ROLE_ARN != "" && ($PACKAGEURL != "" || $BUILDRPMREQUIRED != "") && $REGION != ""'

我遵守如下规则。

.ifawsfulldeploy:
  rules:
    - if: '$ADMIN_SERVER_IP && $ADMIN_SERVER_IP != ""'
      when: never
    - if: '$ACTION && $REGION && $ROLE_ARN && ($PACKAGE_URL || $BUILDRPMREQUIRED) && $ACTION == "new" && $CLOUD_PLATFORM == "aws" && $ROLE_ARN != "" && ($PACKAGE_URL != "" || $BUILDRPMREQUIRED != "") && $REGION != ""'
      when: always

其他规则应该在那里,只有变量我得到语法错误。

.ifawsfulldeploy:
  rules:
    - if: '$ADMIN_SERVER_IP && $ADMIN_SERVER_IP != ""'
      when: never
    - if: '$ACTION && $REGION && $ROLE_ARN && ( $PACKAGE_URL || $BUILDRPMREQUIRED ) && $ACTION == "new" && $CLOUD_PLATFORM == "aws" && $ROLE_ARN != "" && ( $PACKAGE_URL != "" || $BUILDRPMREQUIRED != "" ) && $REGION != ""'
      when: always

在我的工作中。

  only:
    variables:
      - $PACKAGE_URL
      - $BUILDRPMREQUIRED
  extends:
    - .ifawsfulldeploy

【问题讨论】:

    标签: gitlab gitlab-ci


    【解决方案1】:

    您是否尝试过仅对变量使用规则? 就像 Gitlab 文档中的这个例子:

    job1:
      script:
        - echo This rule uses parentheses.
      only:
        variables:
          - ($CI_COMMIT_BRANCH == "main" || $CI_COMMIT_BRANCH == "develop") && $MY_VARIABLE
    

    来源:https://docs.gitlab.com/ee/ci/jobs/job_control.html#only-variables--except-variables-examples

    【讨论】:

    • 看来我们只能保留一个变量
    • 你现在可以检查我在帖子末尾添加的内容吗
    • 如果您像这样添加它们呢:only: variables: - ($PACKAGE_URL || $BUILDRPMREQUIRED) 并将它们从上面的规则中删除? (抱歉格式化,无法弄清楚如何正确格式化代码)。
    • 另外,你有一个错误,extends: 不应该指向同一个工作名称,它是循环引用。 @Jor-El
    • 抱歉,两者都在不同的地方,编辑了帖子。
    【解决方案2】:

    我是 Gitlab 的新手,但我有同样的问题

    $FOO != null
    

    条件帮助了我。 希望它也对你有帮助!

    【讨论】:

      猜你喜欢
      • 2011-12-19
      • 2016-09-10
      • 2010-10-25
      • 1970-01-01
      • 2014-01-30
      • 2012-07-05
      • 2011-08-18
      • 1970-01-01
      相关资源
      最近更新 更多