Jenkins (phần mềm)

Jenkins là một phần mềm tự động hóa, mã nguồn mở và viết bằng Java. Dự án được tách ra từ dự án ban đầu là Hudson, sau khi xảy ra sự tranh chấp với Oracle.

Jenkins giúp tự động hóa các quy trình trong phát triển phần mềm, hiện nay được gọi theo thuật ngữ Tích hợp liên tục, và còn được dùng đến trong việc Phân phối liên tục. Jenkins là một phần mềm dạng server, chạy trên nền servlet với sự hỗ trợ của Apache Tomcat. Nó hỗ trợ hầu hết các phần mềm quản lý mã nguồn phổ biến hiện nay như Git, Subversion, Mercurial, ClearCase... Jenkins cũng hỗ trợ cả các mã lệnh của Shell và Windows Batch, đồng thời còn chạy được các mã lệnh của Apache Ant, Maven, Gradle... Người sáng tạo ra Jenkins là Kohsuke Kawaguchi. Phát hành theo giấy phép MIT nên Jenkins là phần mềm miễn phí.

Việc kích hoạt build dự án phần mềm bằng Jenkins có thể được thực hiện bằng nhiều cách: dựa theo các lần commit trên mã nguồn, theo các khoảng thời gian, kích hoạt qua các URL, kích hoạt sau khi các job khác được build...

Các chức năng của Jenkins có thể được mở rộng thông qua các plugin.

== Lịch sử ==
Jenkins có nguồn gốc từ dự án phần mềm tên là Hudson. Hudson được tạo vào đầu mùa hè năm 2004 ở công ty Sun. Nó được phát hành đầu tiên trong java.net vào tháng 2 năm 2005.

Khoảng năm 2007, Hudson được biết đến như một lựa chọn tốt hơn so với phần mềm CruiseControl và các phần mềm nguồn mở dạng build-server. Tại hội nghị JavaOne tháng 5 năm 2008, phần mềm Hudson thắng giải Duke's Choice Award trong mục Developer Solutions.

Trong tháng 11 năm 2010, một vấn đề nảy sinh trong cộng đồng phát triển Hudson khi nhiều nghi vấn về sự quản lý và kiểm soát bởi Oracle. Đàm phán giữa các nhà đóng góp và Oracle đã diễn ra, và mặc dù đã có nhiều thỏa thuận nhưng họ vẫn chưa giải quyết được về thương hiệu "Hudson", sau khi Oracle tuyên bố sẽ giành tên thương hiệu và áp dụng đăng ký nhãn hiệu vào tháng 12 năm 2010. Kết quả là, vào tháng 11 năm 2011, một cuộc biểu quyết kêu gọi đổi tên từ "Hudson" sang "Jenkins". Đề nghị được phê duyệt bởi cộng đồng sau khi bỏ phiếu vào ngày 29 năm 2011, tạo ra dự án Jenkins.

Vào ngày 1 tháng hai, năm 2011, Oracle nói rằng họ có thể tiếp tục phát triển Hudson, và coi Jenkins là một dạng fork (phát sinh) chứ không phải sự đổi tên. Jenkins và Hudson do đó có thể như hai dự án phát triển độc lập, mỗi bên đều tuyên bố người kia là fork. Tới tháng 12 năm 2013, Jenkins trên GitHub đã có 567 thành viên, hơn 1.100 kho (repository) công cộng, so với Hudson chỉ có 32 thành viên và 17 kho công cộng.

Vào năm 2011, người sáng tạo Kohsuke Kawaguchi nhận được một giải thường từ Google-O ' Reilly Mở Nguồn cho công việc của mình trên Hudson/Jenkins. Trong năm 2014, Kawaguchi trở thành Giám đốc công Nghệ cho CloudBees.

Vào ngày 20 tháng 4 năm 2016, phiên bản Jenkins 2 đã được phát hành với tính năng Pipeline. Các plugin cho phép viết mã dựa theo Apache Groovy.

== Plugin ==
Plugin là các phần mở rộng trong Jenkins, hỗ trợ các dự án không dùng ngôn ngữ Java. Plugin có thể tích hợp hầu hết các hệ thống quản lý mã nguồn và cơ sở dữ liệu vào Jenkins. Nhiều công cụ build có plugin riêng. Plugin cũng có thể thay đổi giao diện hoặc thêm chức năng mới cho Jenkins. Nhiều plugin dành riêng cho các mục đích tạo ra các báo cáo kiểm tra khác nhau (ví dụ JUnit kèm với Jenkins, MSTest, NUnit.) và tự động testing. Các build có thể tạo ra các báo cáo khác nhau được hỗ trợ bằng các plugin (JUnit) và Jenkins có thể trưng bày những bản báo cáo, và tạo ra các giao diện.

== Bảo mật ==
Bảo mật trong Jenkins phụ thuộc vào hai yếu tố, kiểm soát truy cập và bảo vệ từ mối đe dọa bên ngoài. Kiểm soát truy cập có thể được chỉnh qua hai cách sử dụng xác thực và ủy quyền. Bảo vệ từ mối đe dọa bên ngoài như tấn công CSRF và build độc hại cũng được hỗ trợ.

== Các giải thưởng ==
- Giải thưởng InfoWorld Bossia Award năm 2011.
- Nhận được giải thưởng Geek Choice Award đầu năm 2014.

== Liên kết ngoài ==
- Trang web chính thức
- Cook, Manfred, O ' Brien, Tim (2011-11-25)."Cuốn sách miễn phí về Hudson" (PDF).Oracle, Inc.