在 GitLab CI 中使用上游管道中的工件

问题描述 投票:0回答:1

GitLab 文档提到使用

needs:project
(https://docs.gitlab.com/ee/ci/yaml/#needsproject) 来指定从中获取工件的项目(和分支或其他内容),但是“工件是从指定参考的最新成功的指定作业中下载的”。

对于上游管道触发下游管道的情况来说,这看起来确实是错误的。后者不应该依赖(和下载)“最新成功”的工件,而是来自触发当前管道的特定管道的工件。

我是否误解了什么?有没有什么方法可以让它正确(即从正确的管道/作业下载工件,而不仅仅是从最新的东西下载工件)?

gitlab continuous-integration
1个回答
0
投票

我找到了如何通过多项目管道来实现它。

上游项目A

# Job to trigger the pipeline of the downstream project and send the 
downstream:
variables:
    PARENT_COMMIT_REF_NAME: $CI_COMMIT_REF_NAME
trigger: your/downstream/projectB

$CI_COMMIT_REF_NAME
是为其构建项目的分支或标签名称。 预定义 CI/CD 变量参考

下游项目B

test:
stage: test
script:
  - echo 'Fetching artifcats from upstream pipeline'
needs:
  - project: andeo/immomyself/immomyself-api
    job: build
    ref: ${PARENT_COMMIT_REF_NAME_API:-master}
    artifacts: true

通过这种方法,您可以从正确的管道/作业中获取工件

© www.soinside.com 2019 - 2024. All rights reserved.