如何 运行 GitLab 上的多项目管道中的作业到作业链接 CI
How to run job-to-job linking in multi-project pipelines on GitLab CI
示例:
我在 GitLab 中有 3 个不同的管道(项目)。
每个管道都有多个作业,每个作业针对不同的远程虚拟机并设置不同的 GitLab CI 环境。
这些作业都是手动触发的(当前)。
我想要实现的是 运行 的链接(多项目)管道,如下所示:
一旦我在管道 #1 中触发作业 "X",成功后,将在管道 #2 中触发 ONLY 作业 "X",然后再次成功,将在管道 #3.
中触发 ONLY 作业 "X"
作业 "X" 我的意思是 运行 在某个远程虚拟机上的作业,我不希望整个管道 运行 因为我不想更改所有目标。我发现的所有示例都只适用于管道级别,而不适用于作业级别。我错过了什么?
PS:我是 GitLab CI 领域的新手所以请原谅我的不理解,以防我错过了一个简单的解决方案。
有可能。如果我以你的例子为例,在管道 1 的作业 "X" 中,你可以使用 Gitlab API 触发来自另一个项目的管道:
script:
- "curl --request POST --form token=TOKEN --form ref=master https://gitlab.example.com/api/v4/projects/9/trigger/pipeline"
为确保仅触发来自管道 2 的作业 "X",添加使用 only
关键字和 api
condition :
job_X:
only:
- api
示例:
我在 GitLab 中有 3 个不同的管道(项目)。 每个管道都有多个作业,每个作业针对不同的远程虚拟机并设置不同的 GitLab CI 环境。 这些作业都是手动触发的(当前)。 我想要实现的是 运行 的链接(多项目)管道,如下所示: 一旦我在管道 #1 中触发作业 "X",成功后,将在管道 #2 中触发 ONLY 作业 "X",然后再次成功,将在管道 #3.
中触发 ONLY 作业 "X"作业 "X" 我的意思是 运行 在某个远程虚拟机上的作业,我不希望整个管道 运行 因为我不想更改所有目标。我发现的所有示例都只适用于管道级别,而不适用于作业级别。我错过了什么?
PS:我是 GitLab CI 领域的新手所以请原谅我的不理解,以防我错过了一个简单的解决方案。
有可能。如果我以你的例子为例,在管道 1 的作业 "X" 中,你可以使用 Gitlab API 触发来自另一个项目的管道:
script:
- "curl --request POST --form token=TOKEN --form ref=master https://gitlab.example.com/api/v4/projects/9/trigger/pipeline"
为确保仅触发来自管道 2 的作业 "X",添加使用 only
关键字和 api
condition :
job_X:
only:
- api