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

GitLab CI/CD作业执行后工件被清除,多作业流程故障排查

问题诊断与解决

核心问题原因

你的project_analysis_phase_1和project_analysis_phase_2属于同一个阶段,GitLab CI默认会并行运行同一阶段的所有作业。这意味着project_analysis_phase_2可能在project_analysis_phase_1还未完成工件上传时就已启动,自然无法找到my_application/目录。

另外,你在project_analysis_phase_2中仅指定了依赖project_analysis_phase_1,所以build/工件不会被下载(这是预期行为,因为未声明依赖project_build)。

解决方案

方案1:用needs强制串行执行同一阶段的作业

在project_analysis_phase_2中添加needs配置,让GitLab先完成project_analysis_phase_1再启动后续作业,确保工件已生成并可下载:

project_analysis_phase_2:
  stage: project_analysis
  tags:
    - myapp
  script:
    - dir  # Windows环境建议用dir替代ls,更直观
    - cd my_application
  dependencies:
    - project_analysis_phase_1
  needs:
    - project_analysis_phase_1

方案2:拆分阶段,利用阶段的串行特性

将project_analysis_phase_2放到一个新的后续阶段,GitLab会自动等待前一阶段所有作业完成后再执行,且默认会下载前序阶段的所有工件(若未指定dependencies):

stages:
  - project_build
  - project_analysis
  - project_analysis_final  # 新增阶段

# ... 保留其他作业配置 ...

project_analysis_phase_2:
  stage: project_analysis_final
  tags:
    - myapp
  script:
    - dir
    - cd my_application
  dependencies:
    - project_analysis_phase_1

额外检查项

  1. 查看project_analysis_phase_2的作业日志,确认是否存在Downloading artifacts步骤,验证工件是否被正确下载。
  2. 确保project_analysis_phase_1的artifacts路径my_application/是正确的(相对于项目根目录),且作业执行过程中确实生成了该目录下的文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 13:17:18