2017-12-03 78 views
7

Tôi duy trì một kho lưu trữ công cộng trên GitHub nơi các thay đổi chỉ được thực hiện đối với một tệp YAML duy nhất. Tôi đang tìm một giải pháp để xử lý tập tin đó trên mỗi lần đẩy và tạo ra các tập tin dựa trên nó. Về cơ bản, một đường ống hoặc CI nên phân tích cú pháp tệp và tạo nhiều tệp đánh dấu khác nhau. Các tệp này (hoặc cụ thể hơn, các thay đổi đối với các tệp này) sau đó sẽ được đẩy trở lại kho lưu trữ.Đường dẫn GitHub/CI để tạo tệp và đẩy chúng trở lại kho lưu trữ

Yêu cầu:

  • thay đổi bằng tay tới file YAML và những thay đổi tự động để các tập tin markdown cả nên được đẩy đến chi nhánh tổng thể.
  • Lịch sử phiên bản phải được lưu giữ (ví dụ: đẩy cưỡng bức có thể không hoạt động).
  • Có một số lượng tệp tùy ý được tạo.

Có nhà cung cấp Travis cho GitHub PagesGitHub Releases. Nhưng cả hai đều có những hạn chế khiến chúng không phù hợp với yêu cầu của tôi.

Sử dụng công cụ/CI/đường ống nào tôi có thể đạt được điều đó trên GitHub? Tôi muốn một dịch vụ hơn một CI tự lưu trữ.

+1

Tôi đã chỉnh sửa câu trả lời để bao gồm một dịch vụ. – VonC

Trả lời

2

Giả sử bạn đã có chương trình/tập lệnh để phân tích cú pháp tệp YAML và tạo tệp Markdown, tôi có thể cung cấp cho bạn một số thông tin chi tiết về cách thực hiện điều này từ Jenkins CI. Trong khi tôi rút kinh nghiệm từ việc chạy ví dụ của riêng mình, cũng có các tùy chọn được lưu trữ như CloudBees mà bạn có thể khám phá.

  1. Tạo dự án Jenkins Freestyle mới.
  2. Trong phần Quản lý mã nguồn, định cấu hình tọa độ GitHub của bạn.
  3. Trong phần Xây dựng trình kích hoạt, kích hoạt tùy chọn 'Xây dựng khi thay đổi được đẩy lên GitHub'. Điều đó sẽ khởi chạy công việc CI tại thời điểm bạn đẩy một phiên bản mới của tệp YAML vào kho lưu trữ.
  4. Trong phần xây dựng, thêm một bước thực hiện xây dựng vỏ.
  5. Trong bước trình bao, hãy khởi chạy chương trình hoặc tập lệnh xử lý tệp YAML/tạo tệp .md. Kết thúc tập lệnh bằng cách thêm các lệnh git add ., git commit -m "message", git pullgit push (giả sử git nằm trong đường dẫn).
  6. Bật công việc mới để hoạt động trong Jenkins.
+0

Cảm ơn câu trả lời của bạn. Mặc dù tôi nghĩ rằng chạy hoặc trả tiền cho một ví dụ Jenkins cho rằng trường hợp sử dụng đơn giản có vẻ như quá mức cần thiết. Chấp nhận nó như là một aswer anyway vì nó có vẻ là giải pháp tốt nhất cho đến nay. – str

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