如何在GitLab CI上的多项目管道中运行作业间链接

时间:2020-06-01 16:52:41

标签: gitlab gitlab-ci pipeline gitlab-ci-runner gitlab-api

示例:

我在GitLab中有3个不同的管道(项目)。 每个管道都有多个作业,每个作业针对不同的远程VM并设置不同的GitLab CI环境。 这些作业都是手动触发的(当前)。 我试图实现的是一个运行如下的链接(多项目)管道: 一旦我在管道#1中触发作业“ X”,成功后将触发 ONLY (仅)管道#2中的作业“ X”,一旦成功,该任务将再次触发 ONLY < / strong>管道#3中的作业“ X”。

按作业“ X”的意思是在特定的远程VM上运行的作业,我不想运行整个管道,因为我不想更改所有目标。我发现的所有示例仅在管道级别上起作用,而不在工作级别上起作用。我想念什么?

PS:我是GitLab CI领域的新手,所以请原谅我缺乏了解,以防万一我错过了一个简单的解决方案。

1 个答案:

答案 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