【问题标题】:In Gitlab CI, can you "pull" artifacts up from triggered jobs?在 Gitlab CI 中,你能从触发的作业中“拉”出工件吗?
【发布时间】:2019-12-20 19:30:31
【问题描述】:

我在我的gitlab-ci.yml 中有一个工作,它触发了一个生成工件(在本例中为徽章)的外部管道。

我希望能够获取这些工件并将它们作为工件添加到我项目的桥接作业(或其他一些作业)中,以便我可以引用它们。

我触发的工作如下所示:

myjob:
  stage: test
  trigger: 
    project: other-group/other-repo
    strategy: wait

我想要这样的东西:

myjob:
  stage: test
  trigger: 
    project: other-group/other-repo
    strategy: wait
  artifacts:
    # how do I get artifacts from the job(s) on other-repo?
    badge.svg  

Gitlab 有一个 endpoint that can be used for the badge url 用于从项目的最新 Pipeline/Job 下载工件

https://gitlabserver/namespace/project/-/jobs/artifacts/master/raw/badge.svg?job=myjob

有没有办法从触发的作业中获取工件并将它们添加到我的项目中?

【问题讨论】:

    标签: gitlab gitlab-ci


    【解决方案1】:

    我知道有点晚了,但也许这会有所帮助。
    将此添加到您的工作中。它告诉工作它需要来自特定项目的工件。 (您需要是项目的所有者)

    needs:    
        - project: <FULL_PATH_TO_PROJECT> (without hosting website)
          job: <JOB_NAME>
          ref: <BRANCH>
          artifacts: true
    

    【讨论】:

    • 你试试这个变种?可能你有管道列表吗?
    【解决方案2】:

    artifacts 块用于处理来自当前作业的存档工件。为了从不同的工作中获取工件,您可以在script 部分中处理它。拥有该工件后,您可以像往常一样将其归档在 artifacts 块中。

    您可以使用wget 从不同的项目下载工件,如here 所述

    【讨论】:

    • 链接已失效。
    猜你喜欢
    • 2017-10-10
    • 2022-12-09
    • 1970-01-01
    • 2022-01-19
    • 2020-08-04
    • 2019-11-04
    • 2022-12-09
    • 1970-01-01
    • 2020-10-08
    相关资源
    最近更新 更多