为合并请求触发的管道运行应用 GitLab CI/CD 管道更改

Posted

技术标签:

【中文标题】为合并请求触发的管道运行应用 GitLab CI/CD 管道更改【英文标题】:Apply GitLab CI/CD pipeline changes for pipeline run triggered by merge request 【发布时间】:2022-01-07 15:40:45 【问题描述】:

我通过一个新项目的 repo 根目录中的 .gitlab-ci.yml 文件在 GitLab 中创建了一个新的 CD/CD 管道,其作业结构如下:

...
test:
  stage: test
  script:
    - pip install tox flake8
    - tox -e py36,flake8
  # Run only for merge requests on main branch
  rules:
    - if: '$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME == "main"'
...

GitLab 没有触发管道,说存储库中没有 .gitlab-ci.yml 文件。我曾假设管道更改将应用​​于触发的合并请求运行。我可以理解为什么在公共存储库中出于安全目的不是这种情况,但我想测试我为自托管私有 GitLab 实例创建的合并请求中的管道更改。

这可能吗?

【问题讨论】:

【参考方案1】:

这是一个编程错误。我需要使用:

- if: '$CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "main"'

代替:

- if: '$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME == "main"'

【讨论】:

以上是关于为合并请求触发的管道运行应用 GitLab CI/CD 管道更改的主要内容,如果未能解决你的问题,请参考以下文章

Gitlab-ci:如果 MR 存在则触发 merge_request 分离管道,如果不存在则触发源分支管道。这两条管道不应同时运行

在 GitLab Pipelines 中,有没有办法在分离合并请求时运行管道?

在 GitLab CI 中,合并请求的目标分支是不是有变量?

Gitlab双管道触发问题

Gitlab-CI 又名管道依赖项中的上游触发

剪切新版本时如何触发 GitLab CI/CD 管道?