如何在 Gitlab 中基于管道变量运行作业?

Posted

技术标签:

【中文标题】如何在 Gitlab 中基于管道变量运行作业?【英文标题】:How to run a job on the basis of pipeline variables in Gitlab? 【发布时间】:2021-12-08 08:19:23 【问题描述】:

我正在尝试对一些管道变量执行作业。我在 .gitlab-ci.yml 文件中使用了“规则”,但收到错误“密钥可能无法与 '规则'一起使用:仅”。 我该怎么做?

build-dev:
  stage: build
  only:
    - master
    - branches
  rules:
    - if: '$CI_COMMIT_BRANCH=="my-featured-branch"'
      when : never

【问题讨论】:

最好包含一个精简的.gitlab-ci.yml 和完整的错误消息。我是否正确理解您,您只想在设置了某些变量的情况下才包含某个作业? 是的,你没看错 【参考方案1】:

您收到的错误字面意思是:您不应该在同一个工作中同时使用onlyrules

基本上原因是这可能会由于混合行为而导致问题。

来自文档:

rules 替换 only/except,它们不能在同一个作业中一起使用。如果您将一项作业配置为同时使用两个关键字,GitLab 会返回 key may not be used with rules 错误。

【讨论】:

以上是关于如何在 Gitlab 中基于管道变量运行作业?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 GitLab CI 的管道中将变量的值从一个作业传递到下一个作业?

如何让 Gitlab CI 管道始终运行一些作业,而其他作业仅在合并请求上运行?

如何在 Gitlab 中以分离模式运行作业?

在 Gitlab 中合并请求后运行 Jenkins 作业

如何在 gitlab 中触发特定作业

我如何收集gitlab管道中所有作业的日志?