Gitlab CI/CD 工件在作业执行后被删除

问题描述 投票:0回答:1

我有一个 2 阶段、3 个作业的 CI 工作流程。这是我的 .yaml 文件:

before_script:
  - $env:PATH = "C:\\Program Files (x86)\\CMake\\bin;$env:PATH"
  - $env:PATH = "C:\GitLab-Runner\\MinGW\\bin;$env:PATH"
  - $env:PATH = "C:\\Program Files\\myAPP\\bin;$env:PATH"

stages:
  - project_build
  - project_analysis

project_build:
  stage: project_build
  tags:
    - myapp
  script:
    - mkdir build
    - cd build
    - cmake -G "MinGW Makefiles" ..
    - cmake --build .
  artifacts:
    paths:
      - build/
    expire_in: 1 days

project_analysis_phase_1:
  stage: project_analysis
  tags:
    - myapp
  script:
    - mkdir my_application
    - myapp -prog "gitlab_demo" -author "xxxxx" -output-project "my_application/my_project" -output-options-file "my_application/my_gitlab_demo_options.txt" cmake --build "build" --clean-first
  artifacts:
    paths:
      - my_application/
    expire_in: 1 days


project_analysis_phase_2:
  stage: project_analysis
  tags:
    - myapp
  script:
    - ls
    #- cd my_application <= Error occurs here
  dependencies:
    - project_analysis_phase_1

发生错误,提示“my_application”不存在。我对每个作业做了一些调试,我发现:

  1. 创建作业“project_build”-> build/artifact 后,我可以在 GitLab 上看到它,还在带有 GirLab 扩展的 VSC 上本地运行作业,并且它包含正确的内容

  2. 在作业“project_analysis_phase_1”开始时,找到构建工件,因此脚本可以在此作业中执行而不会出现错误。在此作业结束时,my_application/ 工件将被保存(再次在 GitLab 和 VSC 上确认)

  3. 第三个作业“project_analysis_phase_2”启动时出现问题。 build/ 和 my_appliction/ 工件都被清除,并且

    ls
    命令确认了相同的情况。

我做错了什么?我的理解是,一旦创建了工件,在另一个作业开始之前就不会清除它(除非有办法做到这一点),并且任何阶段/作业都可以重用创建的工件。是我的理解错误还是我的脚本错误?

gitlab-ci gitlab-ci-runner
1个回答
0
投票

默认情况下,工件都会传递给其他作业,而不使用依赖项关键字。也许尝试删除它,看看是否可以看到您正在寻找的工件。

看看 gitlab 文档 - 希望它有帮助:) gitlab 依赖项

© www.soinside.com 2019 - 2024. All rights reserved.