运行另一个 GitLab 存储库的 CI 来验证合并请求

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

我有许多项目位于 different GitLab 存储库

repo1
repo2
,...)。这些项目可以使用位于另一个存储库 (
build_scripts
) 中的构建脚本来构建。

build_scripts
包含 YML、shell 脚本和其他内容,需要为每个项目创建包含构建和测试作业的 GitLab 管道。

每个项目的 GitLab CI/CD 配置如下,文件

.gitlab-ci.yml
:

include:
  - project: 'build_scripts'
    ref: master
    file: '/general-pipeline.yml'

文件

general-pipeline.yml
描述了包含
build
test
阶段的管道。
build
阶段包含为不同操作系统/架构构建的多个作业。
test
阶段依赖于
build
并为当前管道中的每个构建运行测试套件。

因此,当为

repo1
repo2
等项目之一创建 MR 时,GitLab 会从
build_scripts/general-pipeline.yml
创建一条管道来验证此 MR。

但是,

build_scripts
本身有时需要修改,我会为
build_scrips
创建MR以集成新的更改。

在 MR 集成到

build_scripts
主分支之前,是否可以通过使用新更改构建我的项目来验证
build_scripts
的 MR?

换句话说,我想在每个

repo1
存储库的 MR 上为项目
repo2
build_scripts
等运行 CI,指定要从中获取
build_scripts
的特定分支。

gitlab gitlab-ci
1个回答
0
投票

没有这方面的功能,但这里是指南:

每次更改后,应在master上标记

build_scripts
,在其他分支上应使用标记版本。因为它避免了不必要地使用合并到 master 中的代码。因此,
build_scripts
中的代码将被Semver(即v0.0.1)标记,然后在
repo1
repo2
等中:

include:
  - project: 'build_scripts'
    ref: `v0.0.1`
    file: '/general-pipeline.yml'

当在

build_scripts
中创建新的MR时,它有一个分支名称(即
feat-X1
)。可以在
repo1
repo2
等中创建新的 MR,以验证
build_scripts
中更改的内容:

include:
  - project: 'build_scripts'
    ref: `feat-X1`
    file: '/general-pipeline.yml'

通过验证后,将合并到

build_scripts
并标记为
v0.0.2
。在
repo1
repo2
存储库中,更改将逐渐应用:

include:
  - project: 'build_scripts'
    ref: `v0.0.2`
    file: '/general-pipeline.yml'
© www.soinside.com 2019 - 2024. All rights reserved.