You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitLab同一阶段作业间CI/CD制品的下载路径查询

GitLab流水线制品定位问题解决指南

核心默认路径说明

通过needs关联上游作业的制品时,GitLab Runner会自动将制品下载到当前作业工作目录下的artifacts/子目录,具体路径为:./artifacts/<上游作业名称>/,对应你的场景就是./artifacts/build-deps/

先确认上游作业的制品配置

首先要排查build-deps的artifacts配置是否正确,必须明确指定要上传的文件/目录,否则下游无法拉取到制品:

build-deps:
  stage: build
  script:
    - # 你的依赖构建命令(如npm install、go mod download等)
    - mkdir -p ./dependencies
    - # 将依赖打包或整理到指定目录
  artifacts:
    paths:
      - ./dependencies/  # 必须明确填写要上传的路径,不能模糊匹配或留空
    expire_in: 1h  # 可选,设置制品过期时间

用精准命令定位制品

在build作业的script里不要只执行简单的ls,用以下命令排查路径:

pwd  # 先确认当前工作目录,避免操作路径错误
ls -la ./artifacts/  # 查看制品根目录的内容
find ./artifacts/ -type f  # 递归查找所有制品文件,确保能找到目标文件

如果build-deps配置了name字段(比如name: "deps-$CI_COMMIT_SHA"),下载路径会变为./artifacts/<自定义名称>/,可以用echo $CI_COMMIT_SHA确认变量值,或用find ./artifacts/ -name "deps-*"模糊查找。

Dockerfile中引用制品的正确方式

假设build-deps上传的是./dependencies/目录,在build作业的Dockerfile中直接从artifacts目录复制即可:

FROM my-base-image:latest

# 复制拉取到的依赖到容器内指定路径
COPY ./artifacts/build-deps/dependencies/ /app/dependencies/

# 后续构建步骤
RUN npm run build

跨Runner环境注意事项

由于使用了不同的Runner(runnerX和runnerY),需确保两个Runner的CI_PROJECT_DIR等核心环境变量未被自定义修改,工作目录配置保持一致,避免因Runner环境差异导致制品下载路径偏移。

内容的提问来源于stack exchange,提问作者rbaleksandar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 14:37:22