Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
GitLab:多项目管道中的作业工件_Gitlab_Gitlab Ci_Pipeline_Gitlab Api - Fatal编程技术网

GitLab:多项目管道中的作业工件

GitLab:多项目管道中的作业工件,gitlab,gitlab-ci,pipeline,gitlab-api,Gitlab,Gitlab Ci,Pipeline,Gitlab Api,我尝试学习多项目管道已经有一段时间了,除了GitLab文档,我还没有找到任何学习材料。如果我能举出一个例子,那真的很有帮助。我一直在为项目a中的多项目管道使用以下ci配置,但它不起作用: trigger_job: stage: trigger_release trigger: project: https://<gitlab-site>/api/v4/projects/<project-B-id>/trigger/pipeline branch

我尝试学习多项目管道已经有一段时间了,除了GitLab文档,我还没有找到任何学习材料。如果我能举出一个例子,那真的很有帮助。我一直在为项目a中的多项目管道使用以下ci配置,但它不起作用:

trigger_job:
  stage: trigger_release  
  trigger:
    project: https://<gitlab-site>/api/v4/projects/<project-B-id>/trigger/pipeline
    branch: master
    strategy: depend
trigger\u作业:
阶段:触发释放
触发:
项目:https:///api/v4/projects//trigger/pipeline
分支机构:硕士
策略:依赖
这使得项目A中的管道永远处于挂起状态。我通过以下方式使用curl,最终使配置正常工作:

trigger_job:
  stage: trigger_release 
  script:
    - curl --request POST --form "token=$CI_JOB_TOKEN" --form ref=master https://<gitlab-site>/api/v4/projects/<project-B-id>/trigger/pipeline
trigger\u作业:
阶段:触发释放
脚本:
-curl--请求POST--表单“token=$CI\u JOB\u token”--表单ref=masterhttps:///api/v4/projects//trigger/pipeline

然而,我真正需要的是在触发的作业完成后,在项目A管道中收集并使用项目B管道的工件。如何做到这一点?

自Gitlab 11.8以来。您不需要使用API来触发管道

例子 让我们将组
mygroup
与2个repos:
myrepository1
myrepository2

存储库1中的配置

触发作业:
触发:
项目:mygroup/myrepository2
分支机构:硕士
变量:
变量到传递:$CI\u COMMIT\u REF\u NAME
存储库中的配置2

等待触发器的作业:
阶段:部署
变量:
脚本:
-从另一个项目管道回显“${VARIABLE_TO_PASS}”
仅:
-管道

我没有试过这个代码,但应该是正确的。

你看到这个
needs
关键字了吗?怎么样?我自己使用了needs关键字来指定一个作业是否需要来自前一个作业的工件,或者连续作业是否需要在前一个作业中取得成功。但是它如何让我访问从触发管道到触发管道的作业工件呢?