Jenkin là gì

  -  
1. Msinh hoạt đầu

Gần đây, mình bắt đầu được nhận một task tò mò với tích thích hợp CI/CD mang đến dự án công trình sẽ làm. Nếu chúng ta như thế nào đã có lần tò mò về CI/CD rồi thì có lẽ rằng đã thấy sự quan trọng của việc tích đúng theo nó vào trong quá trình phát triển ứng dụng. Hay nói nôm na là nó đang đảm nhận Việc tự động build, chạy chạy thử với tiến hành code Lúc bao gồm chuyển đổi. Qua một tuần lễ ngồi vọc vun, khám phá trên mạng thì cũng biết được Jenkins có một hiện tượng hoàn toàn có thể cung ứng để tạo thành phần đa job chạy CI với CD.

Bạn đang xem: Jenkin là gì

CI/CD - Continuous Intergration/Continuous Delivery

Trước tiên, nói giống về CI/CD một chút ít. CI giỏi Continuous Integration, là phương thức cải cách và phát triển ứng dụng tận hưởng các member của team tích đúng theo các bước của mình liên tục, hằng ngày tối thiểu một đợt. Mỗi tích hợp được build auto (bao gồm cả test) nhằm phát hiện tại lỗi nhanh độc nhất vô nhị có thể. Và tất yếu giúp cho việc tích phù hợp và phát triển ứng dụng trsinh hoạt nên nhanh hao và hiệu quả rộng.

Tiếp đến, CD hay không thiếu thốn là Continuous Delivery (tạm thời dịch là chuyển giao liên tục), là quy trình triển khai tất cả biến đổi về code lên môi trường chạy thử hoặc staging. Continuous Delivery cho phép auto hóa phần testing ở bên cạnh bài toán áp dụng unit kiểm tra, soát sổ phần mềm trải qua nhiều thước đo trước lúc tiến hành mang lại khách hàng.

Jenkins là gì?

Là một vận dụng Web mã mối cung cấp msống được viết bởi Java, vào vai trò máy chủ build & thử nghiệm của khối hệ thống tích phù hợp liên tục. Jenkins có thể phối kết hợp được với phần nhiều những phương tiện không giống của hệ thống tích đúng theo thường xuyên với khá nhiều căn cơ không giống nhau. Trong khi, cộng đồng thực hiện Jenkins rất lớn cần cũng rất dễ vào vấn đề thực hiện với cung cấp lúc gặp khó khăn.

2. Sử dụng Jenkins nhằm thông số kỹ thuật CI/CD

Trsống lại bài xích toán thù đặt ra ban sơ, cụ thể tận hưởng nlỗi sau: Khi 1 truyền bá mới được chế tác, Jenkins vẫn bắt sự khiếu nại và trigger để chạy job CI, CI job đã chạy Unit Test, checkstyle code cùng report hiệu quả. khi quảng bá được (merged), thì job CD vẫn chạy deploy code new lên VPS demo và chỉ còn vấn đề ngóng tới Khi gồm thông tin deploy thành công trên Chatwork là xong xuôi :v.

2.1. Cài đặt Jenkins

Jenkins được viết bằng Java phải trước khi sở hữu bạn phải setup Java đến máy tính xách tay của chúng ta nhé. Bắt đầu thôi nào!

wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | subởi vì apt-key add -suvị sh -c "eđến deb http://pkilogam.jenkins.io/debian-stable binary/ > /etc/apt/sources.các mục.d/jenkins.list"suvày add-apt-repository universesuvì apt-get updatesuvì apt-get install jenkins -yĐể truy cập vào Jenkins, vào browser và nhập can dự http://localhost:8080. Tiếp theo là bước cài đặt mang đến lần đầu tiên khởi đụng Jenkins. Nói phổ biến cũng không có gì quan trọng, chỉ tất cả bước sở hữu plugin thì nên cần cliông xã vào "Install suggested plugins" thôi.

Tại đây bọn họ còn cần được thực hiện Github webhook nhằm trigger phần đông sự kiện nlỗi sản xuất quảng cáo hoặc merge quảng cáo, nhưng webhook cần phải tất cả một public domain name để chuyển động. Các bạn cũng có thể sử dụng những tool để public cổng 8080 bên trên local thành public domain. lấy ví dụ như nlỗi ngrok.com cùng làm theo lý giải hoặc chạy lệnh ssh -R 80:localhost:8080 ssh.localhost.run.

2.2. Cấu hình CI

Trước không còn chúng ta nên biết được bao giờ trên repo tất cả một pull request new được sinh sản để chạy CI. Để làm được vấn đề này buộc phải nhờ mang đến một plugin của Jenkins là GitHub Pull Request Builder. Chúng ta đang vào phần quản lí plugin: Manage Jenkins > Manage Plugins > Tab Available, tìm kiếm và click "Install without restart".

*
Bước 1: Tạo webhook bên trên repo: Vào setting webhook, chọn Add webhook. Tại payload url, điền cùng với format sau: /ghprbhook/ ví dụ: http:/my-domain.com/ghprbhook/. Content type lựa chọn application/json với thêm Secret nếu như nên. Cuối thuộc trên mục action lựa chọn Issue comments và Pull requests.

Xem thêm: Phân Bón Npk Là Gì ? Nó Có Tác Dụng Gì Đối Với Cây Trông Cách Bón Phân Cho Năng Suất Cao Ra Sao

Bước 2: Cài đặt đến plugin GitHub Pull Request Builder. Vào setting: Manage Jenkins > Configure System, Thêm credentials (username/password) của tài khoản github mang đến plugin.

Cách 3: Tạo job bắt đầu. Tại mục Github project nhập links của repo vào kia. Tiếp theo, chọn GitHub Pull Request Builder, tích chọn "Use github hooks for build triggering". Trong mục Advance Setting..., nhập whitecác mục branch lúc gồm pull request new được sinh sản. Và nếu còn muốn biến đổi tên hiển thị trên pull request lúc job chạy thì bạn cũng có thể setting vào mục Trigger cài đặt. Thêm action "Update commit status during build" và nhập thương hiệu hiển thị của job vào ô "Commit Status Context".

*
*
*
*
Bước 4: Viết script pipeline cho job.

Việc setting đã xong xuôi, hiện nay thử tạo nên một pull request trên repo vào nhánh master với đề nghị.

*

2.3. Cấu hình CD

Thật rủi ro là github webhook chưa cung ứng cho bọn họ lúc bao gồm sự kiện merge pull request. Vì vậy đề xuất sử dụng plugin Generic Webhook Trigger Plugin và so sánh payload của Github webhook Khi gồm sự khiếu nại merge. Tại phía trên, bọn họ yêu cầu chất vấn 2 ngôi trường $.action="closed" với $.pull_request.merged=true.

Bước 1: Tạo một webhook không giống cùng với payload url nlỗi sau: /generic-webhook-trigger/invoke?token=my-token, trên mục action lựa chọn Pull requests.

Bước 2: Tạo job new. Tại phần Build Trigger, tích vào lựa chọn Generic Webhook Trigger cùng setting nhỏng vào hình sau đây.

Xem thêm: Neighbours From Hell - Tải Miễn Phí Game Phá Hoại Hàng Xóm

*
Cách 3: Viết script cho job.

pipeline { agent any tools maven "mvn3" stages stage("Checkout") when expression return current_status == "closed" &và merged == "true" steps emang đến "Checkout done." stage("Build") when expression return current_status == "closed" &và merged == "true" steps emang đến "Build done." stage("Deploy") when expression return current_status == "closed" && merged == "true" steps echo "Deploy done." stage("Notify") when expression return current_status == "closed" &và merged == "true" steps eđến "Notify when deploy success." 3. Kết luậnTrên đấy là bài viết khuyên bảo những cấu hình, tích vừa lòng CI/CD bằng Jenkins vào project. Rất mong cảm nhận sự góp ý cùng share số đông chủ kiến thêm của hầu hết fan. Thank all!