Jenkins vs Travis-CI. Cái nào bạn sẽ sử dụng cho một dự án nguồn mở? [đóng cửa]


270

Đối với dự án của tôi, tôi cần phải chọn giữa Jenkins và Travis-CI. Tôi đã sử dụng Jenkins trong nhiều năm nhưng tôi cũng đã đọc những đánh giá tốt về Travis-CI.

Cái nào bạn sẽ sử dụng cho một dự án nguồn mở? Những lợi ích chính hoặc lợi thế của cả hai là gì?

Câu trả lời:


293

Travis-ci và Jenkins, trong khi cả hai đều là công cụ để tích hợp liên tục rất khác nhau.

Travis là một dịch vụ được lưu trữ (miễn phí cho nguồn mở) trong khi bạn phải lưu trữ, cài đặt và định cấu hình Jenkins.

Travis không có việc làm như ở Jenkins. Các lệnh để chạy để kiểm tra mã được lấy từ một tệp có tên .travis.ymlnằm dọc theo mã dự án của bạn. Điều này giúp dễ dàng có mã kiểm tra khác nhau cho mỗi nhánh vì mỗi nhánh có thể có phiên bản riêng của tệp .travis.yml.

Bạn có thể có một tính năng tương tự với Jenkins nếu bạn sử dụng một trong các plugin sau:

  • Plugin Travis YML - cảnh báo: dường như không phổ biến, có thể không có tính năng hoàn chỉnh so với Travis thật.
  • Jervis - một sửa đổi của Jenkins để làm cho nó đọc tạo công việc từ một .jervis.ymltệp được tìm thấy ở thư mục gốc của mã dự án. Nếu .jervis.ymlkhông tồn tại, nó sẽ quay trở lại sử dụng .travis.ymltập tin thay thế.

Có các dịch vụ lưu trữ khác mà bạn cũng có thể xem xét để tích hợp liên tục (danh sách không đầy đủ):


Chọn như thế nào?

Bạn có thể muốn ở lại với Jenkins vì bạn đã quen với nó hoặc không muốn phụ thuộc vào bên thứ 3 cho hệ thống tích hợp liên tục của bạn. Khác tôi sẽ bỏ Jenkins và đi với một trong những dịch vụ CI được lưu trữ miễn phí vì chúng giúp bạn tiết kiệm rất nhiều rắc rối (lưu trữ, cài đặt, định cấu hình, chuẩn bị công việc)

Tùy thuộc vào nơi lưu trữ mã của bạn được lưu trữ, tôi sẽ đưa ra các lựa chọn sau:

  • trong nhà → Jenkins hoặc gitlab-ci
  • Github.com → Travis-CI

Để thiết lập Travis-CI trên dự án github, tất cả những gì bạn phải làm là:

  • thêm tệp .travis.yml vào thư mục gốc của dự án của bạn
  • tạo một tài khoản tại travis-ci.com và kích hoạt dự án của bạn

Các tính năng bạn nhận được là:

  • Travis sẽ chạy thử nghiệm cho mỗi lần đẩy trên repo của bạn
  • Travis sẽ chạy thử nghiệm của bạn trên mỗi người đóng góp yêu cầu kéo sẽ thực hiện

25
Theo kinh nghiệm của tôi, sử dụng Jenkins trên Travis cũng sẽ giúp bạn tiết kiệm rất nhiều rắc rối ( .travis.yml!) Tôi có một số dự án github mà tôi đang điều hành Jenkins của riêng mình và tôi không hối tiếc một chút nào. Nếu bạn có khả năng chạy Jenkins của riêng mình, tôi rất khuyến khích tùy chọn đó. Thật tuyệt khi kiểm soát 100% môi trường CI của bạn.
Simon Forsberg

21
Plugin Jenkins Pipeline (có nghĩa là thay thế các dự án kiểu tự do trong hầu hết các tình huống) cho phép tập lệnh Groovy đường ống được đặt trong một tệp (thường được đặt tên là "Jenkinsfile") trong dự án của bạn, cho phép nó có các tính năng tương tự được đề cập trong Travis-CI ở trên, với phần thưởng thêm được hỗ trợ bởi nhóm Jenkins.
KhainTCore

48

Tôi đã làm việc trên cả Travis và Jenkins: Tôi sẽ liệt kê một số tính năng của cả hai:

Thiết lập CI cho một dự án

Travis đến ở vị trí đầu tiên. Nó rất dễ cài đặt. Mất ít hơn một phút để thiết lập với GitHub.

  1. Đăng nhập vào GitHub
  2. Tạo Web Hook cho Travis ( chỉnh sửa:
  3. Quay trở lại Travis và đăng nhập bằng thông tin đăng nhập GitHub của bạn
  4. Đồng bộ hóa repo GitHub của bạn và bật các yêu cầu Đẩy và Kéo.

Jenkins:

  1. Tạo môi trường (Master Jenkins)
  2. Tạo móc web
  3. Định cấu hình từng công việc (mất thời gian so với Travis)

Chạy lại bản dựng

Travis: Bất kỳ ai có quyền truy cập ghi trên GitHub đều có thể chạy lại bản dựng bằng cách nhấp vào `restart build

Jenkins: Chạy lại các bản dựng dựa trên một cụm từ. Bạn cung cấp văn bản cụm từ trong mô tả PR / cam kết, như reverify jenkins.

Kiểm soát môi trường

Travis: Travis cung cấp môi trường lưu trữ. Nó cài đặt phần mềm cần thiết cho mọi bản dựng. Đó là một quá trình tốn thời gian.

Jenkins: Thiết lập một lần. Cài đặt tất cả phần mềm cần thiết trên máy nút / nô lệ, sau đó xây dựng / kiểm tra trên môi trường được cài đặt sẵn.

Xây dựng nhật ký:

Travis: Hỗ trợ xây dựng nhật ký để đặt trong Amazon S3.

Jenkins: Dễ dàng thiết lập với plugin tạo tác.


Bạn có thể vui lòng cho biết, S3 là gì?
Pooja

@Pooja Amazon S3
adrianN

30

Tôi muốn đề xuất Travis cho dự án nguồn mở. Nó chỉ đơn giản để cấu hình và sử dụng.

Các bước đơn giản để thiết lập:

  1. Nên có tài khoản GITHUB và đăng ký trong trang web Travis CI bằng tài khoản GITHUB của bạn.
  2. Thêm .travis.ymltập tin trong thư mục gốc của dự án của bạn. Thêm Travis làm dịch vụ trong trang cài đặt kho lưu trữ của bạn.

Bây giờ mỗi khi bạn cam kết vào kho lưu trữ của mình, Travis sẽ xây dựng dự án của bạn. Bạn có thể làm theo các bước đơn giản để bắt đầu với Travis CI.


7
Một cảnh báo cho việc sử dụng Travis CI cho Nguồn mở: Nó chạy các bản dựng và thử nghiệm trên Linux hoặc OSX, không phải Windows. Vì vậy, nếu dự án của bạn là .NET hoặc PowerShell, thì nó sẽ cần phải được viết bằng phiên bản đa nền tảng của .NET (Mono hoặc .NET Core) hoặc PowerShell (PowerShell Core) để bạn có thể sử dụng Travis CI . Một công cụ CI được lưu trữ thân thiện với Windows hơn là Appveyor ..
Simon Tewsi
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.