Ash*_*ngh 6 pipeline gitlab gitlab-ci gitlab-pipelines
我正在开发一个多管道项目,并使用trigger关键字触发下游管道,但我无法传递在上游项目中创建的工件。我用来needs获取这样的工件:
获取工件的下游管道块:
needs:
- project: workspace/build
job: build
ref: master
artifacts: true
Run Code Online (Sandbox Code Playgroud)
要触发的上游管道块:
build:
stage: build
artifacts:
paths:
- ./policies
expire_in: 2h
only:
- master
script:
- echo 'Test'
allow_failure: false
triggerUpstream:
stage: deploy
only:
- master
trigger:
project: workspace/deploy
Run Code Online (Sandbox Code Playgroud)
但我收到以下错误:
This job depends on other jobs with expired/erased artifacts:
Run Code Online (Sandbox Code Playgroud)
我不确定出了什么问题。
您的上游管道作业“Build”设置为仅将其工件存储 2 小时(从生产线开始)expire_in: 2h。您的下游管道必须在工件创建后至少运行 2 小时,因此工件过期并被删除,从而生成该错误。
要解决此问题,您可以将expire_in字段更新为您需要它们处于活动状态的时间(例如,如果您知道下游管道将在 5 天后运行,请将其设置为 5d 持续 5 天),或者重新运行构建作业重新创建文物。
expire_in您可以从文档中阅读有关关键字和工件的更多信息