2015-10-29 16 views
8

Tôi có tệp .gitlab-ci.yml được thiết lập trong ba giai đoạn điển hình: thử nghiệm, xây dựng, triển khai. Trong giai đoạn xây dựng, tôi chạy một lệnh biên dịch dự án của tôi và đặt nó vào một tarball. Giai đoạn xây dựng xuất hiện để thực hiện thành công vì nó chuyển sang giai đoạn triển khai, nhưng giai đoạn triển khai sau đó nói rằng nó không thể tìm thấy tarball. Có trong thư mục khác không? Chuyện gì đã xảy ra với nó? Cảm ơn.CI Gitlab: Không thể tìm thấy đầu ra của giai đoạn xây dựng

+1

https://about.gitlab.com/2016/03/10/setting-up-gitlab-ci-for-ios-projects/ Bạn có thể tạo 'tạo phẩm: đường dẫn:'. Cho phép sau này để tải xuống. – Unapiedra

+0

Vâng, tôi chắc chắn rằng nó đã được thêm sau khi tôi đăng này. – sajattack

Trả lời

3

Đối với mỗi thử nghiệm gitlab-ci làm sạch thư mục xây dựng, do đó các tệp đầu ra của giai đoạn xây dựng không có sẵn trong giai đoạn triển khai.

Bạn cần phải xây dựng lại dự án của mình cũng trong giai đoạn triển khai.

"Giai đoạn" chỉ hữu ích để đặt hàng các thử nghiệm của bạn, tức là tránh thử làm thử nghiệm triển khai nếu thử nghiệm bản dựng không thành công.

EDIT: Kể từ Gitlab 8.6, nó có thể sử dụng dependencies feature

+0

Lạ. Nó sẽ được tốt hơn để đặt biên dịch trong một công việc riêng biệt? Cách DRY để làm điều này là gì? – sajattack

+0

Ồ vâng, nó sẽ tốt hơn, nhưng ** tại thời điểm này ** bạn không thể sử dụng lại kết quả đầu ra từ các giai đoạn/thử nghiệm khác. – jeremf

4

Tôi rất ngạc nhiên khi thấy những hành vi tương tự (trên GitLab 8.4).

Tôi sử dụng cmake để tạo makefiles, sau đó make để tạo và sau đó make test để chạy thử nghiệm. Tôi chạy tất cả những điều này trong một thư mục build/.

Tôi không muốn lặp lại bản thân mình và xác định dễ dàng các bước nào không thành công. Như vậy, tôi đã tạo ra khác nhau gitlab-ci giai đoạn: cmake, make, test, vv Sau đó tôi nói với gitlab-ci để giữ cho thư mục build sử dụng cache tùy chọn:

cache: 
    key: "$CI_BUILD_REF_NAME" 
    untracked: true 
    paths: 
     - build/ 

Tôi nghĩ rằng key tùy chọn sẽ giữ cùng một thư mục xây dựng cho tất cả các giai đoạn hoạt động trên cùng một chi nhánh. Xem tài liệu gitlab-ci tại đây: http://doc.gitlab.com/ce/ci/yaml/README.html#cache

CHỈNH SỬA: Không sử dụng cache cho việc này! GitLab triển khai các tạo tác tái sử dụng giữa các giai đoạn trong 8.4: https://gitlab.com/gitlab-org/gitlab-ce/issues/3423 Các vận động viên CI sẽ phải được điều chỉnh để hỗ trợ điều này. Xem: https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/issues/336

+0

Tôi đã trở lại để đăng bài # 3423 nhưng tôi thấy bạn đã làm. +1. Có vẻ như tính năng này đã được đẩy lùi một vài lần. – sajattack

Các vấn đề liên quan