有一些多项工作(不是并行进行的),我正在尝试将工件从第一项工作传递给第二项工作。
这是什么样子:
deploy-build-docker 1/2:
stage: deploy
image: docker:stable
script:
- ...
artifacts:
paths:
- path
deploy-preprod 2/2:
stage: deploy
image: alpine
dependencies: [deploy-build-docker]
script:
- ....
CI找不到依赖项,并给我这个错误deploy-preprod 2/2 job: undefined dependency: deploy-build-docker
我也尝试过deploy
,deploy-build-docker 1/2
,但仍然遇到相同的问题。
那我该怎么做?我应该在另一个阶段进行构建吗?
答案 0 :(得分:0)
是的,您只能传递上一个阶段的工件。
默认情况下,所有先前阶段的所有工件都被传递,但是您可以使用dependencies参数定义要从中获取工件的有限的作业列表(或没有作业)。
要使用此功能,请在作业的上下文中定义依赖关系,并传递应从中下载工件的所有先前作业的列表。您只能从当前阶段之前执行的阶段定义作业。如果您从当前阶段或下一个阶段定义作业,将显示错误。
https://docs.gitlab.com/ee/ci/yaml/#dependencies
尽管他们将来可能会增加对needs:
的支持以在当前阶段引用工作:https://gitlab.com/gitlab-org/gitlab/issues/30632