Gitlab-CI 规则将变量与变量字符串进行比较

问题描述 投票:0回答:1

在 gitlab-ci 中,只有当

$CI_COMMIT_TAG
匹配由两个变量组成的字符串时,我才想触发作业。

示例:

job1:
  variables:
    APP="my-app1"
    APP_VERSION="1.0.0"

  script:
    - some_cmd

  rules:
    - if: $CI_COMMIT_TAG == "$APP-APP_VERSION"
  • 仅当我提交新的特定标签“my-app1-1.0.0”时,此管道才应触发 job1

我的观点是,我使用模板,并且规则不应仅针对一项作业,而是针对所有作业 - 每个作业在变量中都有唯一的值($APP 和 $APP_VERSION)。

因此管道应该触发

git tag
操作并且仅触发特定作业。但它不起作用,我被困住了......

有什么解决方案来评估这些变量值吗?

  • 我认为我可以触发所有作业并在作业的脚本块中使用 if 语句,但我更乐意在作业运行之前对其进行评估。
gitlab gitlab-ci pipeline
1个回答
0
投票

不确定其中一条评论是否解决了您的问题,但您也可以引入一个中间变量

variables:
  APP_WITH_APPVERSION: $APP-$APP_VERSION
rules:
    - if: $CI_COMMIT_TAG == "$APP_WITH_APPVERSION"
© www.soinside.com 2019 - 2024. All rights reserved.