1. Msống đầu

Gần đây, bản thân new được trao một task khám phá và tích đúng theo CI/CD cho dự án công trình đang làm cho. Nếu chúng ta nào đã có lần tò mò về CI/CD rồi thì chắc hẳn sẽ thấy sự cần thiết của việc tích hợp nó vào trong quy trình cải tiến và phát triển ứng dụng. Hay nói nôm na là nó vẫn phụ trách vấn đề auto build, chạy kiểm tra và tiến hành code lúc gồm biến hóa. Qua một tuần lễ ngồi vọc vén, tò mò bên trên mạng thì cũng biết được Jenkins tất cả một khí cụ hoàn toàn có thể cung cấp để tạo thành phần đông job chạy CI với CD.

Bạn đang xem: Hướng dẫn cài đặt jenkins cho người mới bắt đầu

CI/CD - Continuous Intergration/Continuous Delivery

Trước hết, nói giống về CI/CD một chút. CI xuất xắc Continuous Integration, là cách thức cách tân và phát triển ứng dụng tận hưởng những thành viên của team tích vừa lòng quá trình của họ thường xuyên, hàng ngày tối thiểu một lần. Mỗi tích phù hợp được build auto (bao hàm cả test) nhằm vạc hiện tại lỗi nhanh khô độc nhất vô nhị hoàn toàn có thể. Và tất nhiên giúp cho câu hỏi tích hòa hợp với cách tân và phát triển ứng dụng trnghỉ ngơi phải nhanh khô cùng tác dụng hơn.

Tiếp mang lại, CD xuất xắc không thiếu thốn là Continuous Delivery (tạm bợ dịch là chuyển giao liên tục), là quy trình thực hiện tất cả biến hóa về code lên môi trường test hoặc staging. Continuous Delivery chất nhận được tự động hóa hóa phần testing cạnh bên câu hỏi áp dụng unit kiểm tra, chất vấn phần mềm qua nhiều thước đo trước lúc thực hiện mang lại khách hàng.

Jenkins là gì?

Là một vận dụng Web mã mối cung cấp mngơi nghỉ được viết bằng Java, nhập vai trò máy chủ build và chạy thử của khối hệ thống tích đúng theo liên tiếp. Jenkins có thể phối hợp được với phần đông những nguyên tắc khác của hệ thống tích đúng theo tiếp tục với tương đối nhiều nền tảng gốc rễ khác biệt. Bên cạnh đó, cộng đồng thực hiện Jenkins không hề nhỏ bắt buộc cũng rất dễ vào Việc áp dụng cùng cung ứng lúc gặp trở ngại.

2. Sử dụng Jenkins để cấu hình CI/CD

Trnghỉ ngơi lại bài bác tân oán đặt ra lúc đầu, chi tiết thưởng thức nhỏng sau: lúc 1 quảng cáo mới được tạo nên, Jenkins đang bắt sự khiếu nại và trigger để chạy job CI, CI job đã chạy Unit Test, checkstyle code cùng report công dụng. lúc quảng bá được (merged), thì job CD sẽ chạy deploy code bắt đầu lên hệ thống chạy thử và chỉ Việc chờ cho tới Khi có thông tin deploy thành công trên Chatwork là dứt :v.

2.1. Cài đặt Jenkins

Jenkins được viết bằng Java đề xuất trước khi thiết lập bạn phải thiết đặt Java mang đến máy vi tính của doanh nghiệp nhé. Bắt đầu thôi nào!

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

Tại phía trên họ còn cần được sử dụng Github webhook để trigger hồ hết sự khiếu nại nhỏng tạo truyền bá hoặc merge quảng bá, nhưng webhook cần được tất cả một public tên miền nhằm hoạt động. Các chúng ta cũng có thể sử dụng những tool nhằm public cổng 8080 trên local thành public tên miền. lấy ví dụ như như ngrok.com cùng tuân theo hướng dẫn 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 họ cần biết được lúc nào trên repo tất cả một pull request mới được sản xuất để chạy CI. Để làm được điều này bắt buộc nhờ đến một plugin của Jenkins là GitHub Pull Request Builder. Chúng ta đã vào phần cai quản lí plugin: Manage Jenkins > Manage Plugins > Tab Available, tìm kiếm và click "Install without restart".

*
Cách 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 cùng thêm Secret nếu như phải. Cuối thuộc trên mục action chọn Issue comments với Pull requests.

Xem thêm: Cách Nấu Bún Cá Hải Phòng Cay Ngon Đậm Vị Tại Nhà, Cách Nấu Bún Cá Hải Phòng

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

Bước 3: Tạo job mới. Tại mục Github project nhập liên kết của repo vào đó. 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 whitedanh mục branch khi gồm pull request new được sinh sản. Và nếu như muốn chuyển đổi tên hiện trên pull request Lúc job chạy thì chúng ta cũng có thể setting vào mục Trigger thiết đặ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".

*
*
*
*
Cách 4: Viết script pipeline mang đến job.

Việc setting đang chấm dứt, hiện nay hãy thử tạo ra một pull request trên repo vào nhánh master cùng đề xuất.

*

2.3. Cấu hình CD

Thật không may là github webhook không hỗ trợ đến chúng ta Khi có sự kiện merge pull request. Vì vậy nên sử dụng plugin Generic Webhook Trigger Plugin cùng phân tích payload của Github webhook Lúc gồm sự khiếu nại merge. Tại trên đây, chúng ta cần đánh giá 2 ngôi trường $.action="closed" và $.pull_request.merged=true.

Bước 1: Tạo một webhook khác với payload url nhỏng sau: /generic-webhook-trigger/invoke?token=my-token, tại mục action lựa chọn Pull requests.

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

*
Cách 3: Viết script mang đến job.

pipeline { agent any tools maven "mvn3" stages stage("Checkout") when expression return current_status == "closed" && merged == "true" steps echo "Checkout done." stage("Build") when expression return current_status == "closed" &và merged == "true" steps emang lại "Build done." stage("Deploy") when expression return current_status == "closed" && merged == "true" steps eđến "Deploy done." stage("Notify") when expression return current_status == "closed" &và merged == "true" steps emang đến "Notify when deploy success." 3. Kết luậnTrên đó là nội dung bài viết trả lời những thông số kỹ thuật, tích phù hợp CI/CD bằng Jenkins vào project. Rất ước ao nhận thấy sự góp ý và chia sẻ đông đảo chủ ý thêm của đông đảo tín đồ. Thank all!