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

GitLab CI artefacts传递问题:cleanup_build文件未传至install_block

GitLab CI 作业间 Artefacts 传递问题解决

核心问题原因

GitLab CI 中每个作业都会在独立的干净环境(重新拉取的项目仓库)中运行,若不显式配置 artefacts 传递,前序作业生成的文件无法自动被后续作业获取。

解决方案步骤

1. 为 cleanup_build 配置 Artefacts 上传

在 cleanup_build 作业中添加 artifacts 配置,明确指定需要传递的文件/目录,确保作业成功时上传 artefacts:

cleanup_build:
  stage: cleanup
  script:
    - # 你的清理及生成clean文件的命令
    - mkdir -p ${ARTEFACTS_FOLDER_PATH}
    - touch ${ARTEFACTS_FOLDER_PATH}/clean
  artifacts:
    paths:
      - ${ARTEFACTS_FOLDER_PATH}/  # 传递整个artefacts目录
    when: on_success  # 仅当作业成功时上传,符合你的需求

2. 让 install_block 依赖 cleanup_build

通过 needs 字段指定 install_block 依赖 cleanup_build,这样只有前者成功后,后者才会启动,并且自动下载前者的 artefacts:

install_block:
  stage: installation
  needs: [cleanup_build]
  script:
    - # 你的安装命令,此时可访问clean文件
    - cat ${ARTEFACTS_FOLDER_PATH}/clean

3. 路径校验要点

  • 确保 ARTEFACTS_FOLDER_PATH 是相对仓库根目录的路径,避免使用绝对路径
  • 在 cleanup_build 的 script 中添加 ls -l ${ARTEFACTS_FOLDER_PATH} 验证文件是否生成

4. 验证 Artefacts 上传状态

在 GitLab 项目的 CI/CD 作业详情页,查看 cleanup_build 的「Artefacts」板块,确认文件是否成功上传。若未上传,检查:

  • 文件是否真的在指定路径生成
  • 作业运行环境是否有写入该路径的权限

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 19:18:16