一千萬個為什麽

搜索

在gitlab-ci跑步者中有多個不同到期時間的路徑



我在使用Gitlab-CI解析階段之間的 build 目錄時遇到了問題。

Gitlab-CI擦除階段之間創建的構建工件,這似乎很奇怪。我試圖在構建和測試階段之間存儲構建工件,但構建階段還有我想要保留的構建工件以及運行下一個階段所需的構建工件。

使用 artifacts 選項可以在不同路徑中使用多個到期時間嗎?

我已經嘗試了以下內容,它僅保留 paths (構建/測試*路徑)的第二個定義,而不是聲明的第一個路徑(.dmg)。

  artifacts:
    paths:
    - build/*.dmg
    expire_in: 1 week
    paths:
    - build/test1
    - build/test2
    - build/test3
    expire_in: 15 mins

我嘗試過使用緩存,但似乎無法得到那個工作...任何建議將非常感謝!

轉載註明原文: 在gitlab-ci跑步者中有多個不同到期時間的路徑

一共有 2 個回答:

這已在 SO 上得到解答根據文件看來,這似乎是不可能的。

基本上,這可以分3個階段完成。

Stage 1: Build and store all artifacts.

build_stage:
  script:
    - build
  artifacts:
    paths:
    - build/*.dmg
    - build/test1
    - build/test2
    - build/test3
    expire_in: 15 mins

Stage 2.1: Do the next official stage of the job (ie run tests in my scenario) using the artifacts build/test1, build/test2 and build/test3.

test_stage:
  script:
    - test
  dependencies:
  - build

Stage 2.2: Running concurrently with Stage 2.1 you can just have an empty job but sets a new artifact expiry date.

overwrite_artifact_stage:
  script:
    - echo 'saving artifact'
  artifacts:
    paths:
    - build/*.dmg
    expire_in: 1 week

看起來你正在試圖定義全局的工件,因為你正在覆蓋密鑰的定義,所以不能用於多條路徑。相反,您應該定義每個作業的路徑。

工件:     expire_in:1周

build:buildjob
    paths:
    - build/test1
    - build/test2
    - build/test3
    expire_in: 15 mins

test:testjob
      paths:
        - build/*.dmg
      artifacts:
        expire_in: 1 week