Nhiều đường dẫn với thời gian hết hạn khác nhau trong vận động viên gitlab-ci


7

Tôi đang gặp vấn đề với việc phân tích một buildthư mục giữa các giai đoạn bằng Gitlab-CI.

Gitlab-CI xóa sạch các tạo phẩm xây dựng được tạo ra giữa các giai đoạn có vẻ kỳ lạ. Tôi đang cố gắng lưu trữ các tạo phẩm xây dựng giữa giai đoạn xây dựng và giai đoạn thử nghiệm, tuy nhiên giai đoạn xây dựng cũng có tạo tác xây dựng mà tôi muốn giữ và cả các tạo phẩm xây dựng được yêu cầu để chạy giai đoạn tiếp theo.

Có thể có nhiều thời gian hết hạn với các đường dẫn khác nhau bằng cách sử dụng artifactstùy chọn không?

Tôi đã thử cách sau, chỉ giữ định nghĩa thứ hai về paths(đường dẫn xây dựng / kiểm tra *), và không pathskhai báo (.dmg) đầu tiên .

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

Tôi đã thử sử dụng cachestuy nhiên dường như không thể làm việc đó ... Mọi đề xuất sẽ được đánh giá cao!

Câu trả lời:


5

Điều này đã được trả lời trên SO bằng cách sử dụng một công việc xung quanh xem vì dường như không thể theo tài liệu.

Về cơ bản, điều này có thể được thực hiện trong 3 giai đoạn.

Giai đoạn 1: Xây dựng và lưu trữ tất cả các hiện vật.

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

Giai đoạn 2.1: Thực hiện giai đoạn chính thức tiếp theo của công việc (nghĩa là chạy thử nghiệm trong kịch bản của tôi) bằng cách sử dụng các tạo phẩm build/test1, build/test2build/test3.

test_stage:
  script:
    - test
  dependencies:
  - build

Giai đoạn 2.2: Chạy đồng thời với Giai đoạn 2.1, bạn có thể có một công việc trống nhưng đặt ngày hết hạn tạo tác mới.

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

3

Có vẻ như bạn đang cố gắng xác định các tạo phẩm trên toàn cầu, sẽ không hoạt động với nhiều đường dẫn vì bạn ghi đè định nghĩa của khóa. Thay vào đó bạn nên xác định đường dẫn cho mỗi công việc.

hiện vật: expire_in: 1 tuần

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

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

Tôi quên đề cập đến trong câu hỏi mà tôi đã xác định trong một công việc. Công việc "xây dựng" của tôi xây dựng cả các tạo phẩm cũng như các tạo phẩm "thử nghiệm", tuy nhiên tôi không muốn lưu trữ các tạo phẩm "thử nghiệm" vì bộ đệm không bị xóa sau đường ống.
Rekovni
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.