示例:
我在GitLab中有3个不同的管道(项目)。 每个管道都有多个作业,每个作业针对不同的远程VM并设置不同的GitLab CI环境。 这些作业都是手动触发的(当前)。 我试图实现的是一个运行如下的链接(多项目)管道: 一旦我在管道#1中触发作业“ X”,成功后将触发 ONLY (仅)管道#2中的作业“ X”,一旦成功,该任务将再次触发 ONLY < / strong>管道#3中的作业“ X”。
按作业“ X”的意思是在特定的远程VM上运行的作业,我不想运行整个管道,因为我不想更改所有目标。我发现的所有示例仅在管道级别上起作用,而不在工作级别上起作用。我想念什么?
PS:我是GitLab CI领域的新手,所以请原谅我缺乏了解,以防万一我错过了一个简单的解决方案。
答案 0 :(得分:1)
可能是的。以我为例,在管道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
condition中使用api
关键字:
job_X:
only:
- api