Đề Xuất 5/2022 # Tìm Hiểu Về Jenkins Và Ci/cd # Top Like

Xem 10,197

Cập nhật nội dung chi tiết về Tìm Hiểu Về Jenkins Và Ci/cd mới nhất ngày 19/05/2022 trên website Cuocthitainang2010.com. Hy vọng thông tin trong bài viết sẽ đáp ứng được nhu cầu ngoài mong đợi của bạn, chúng tôi sẽ làm việc thường xuyên để cập nhật nội dung mới nhằm giúp bạn nhận được thông tin nhanh chóng và chính xác nhất. Cho đến nay, bài viết này đã thu hút được 10,197 lượt xem.

--- Bài mới hơn ---

  • 7 Bước Cơ Bản Cần Biết Khi Kinh Doanh Online
  • Kinh Doanh Online 2022: Kinh Nghiệm Xương Máu (0 Đến 300Tr/tháng)
  • 3 Bước Kinh Doanh Online Tại Nhà Hiệu Quả Cho Người Mới
  • Tìm Hiểu Ngành Kinh Doanh Thương Mại
  • Mở Cửa Hàng Điện Nước Thành Công 100%
  • Gần đây, mình mới được nhận một task tìm hiểu và tích hợp CI/CD cho dự án đang làm. Nếu bạn nào đã từng tìm hiểu 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 quá trình phát triển phần mềm. Hay nói nôm na là nó sẽ đảm nhận việc tự động build, chạy test và triển khai code khi có thay đổi. Qua một tuần ngồi vọc vạch, tìm hiểu trên mạng thì cũng biết được Jenkins có một công cụ có thể hỗ trợ để tạo ra những job chạy CI và CD.

    CI/CD – Continuous Intergration/Continuous Delivery

    Đầu tiên, nói lại về CI/CD một chút. CI hay Continuous Integration, là phương pháp phát triển phần mềm yêu cầu các thành viên của team tích hợp công việc của họ thường xuyên, mỗi ngày ít nhất một lần. Mỗi tích hợp được build tự động (bao gồm cả test) nhằm phát hiện lỗi nhanh nhất có thể. Và tất nhiên giúp cho việc tích hợp và phát triển phần mềm trở nên nhanh và hiệu quả hơn.

    Tiếp đến, CD hay đầy đủ là Continuous Delivery (tạm dịch là chuyển giao liên tục), là quá trình triển khai tất cả thay đổi về code lên môi trường test hoặc staging. Continuous Delivery cho phép tự động hóa phần testing bên cạnh việc sử dụng unit test, kiểm tra phần mềm qua nhiều thước đo trước khi triển khai cho khách hàng.

    Jenkins là gì?

    Là một ứng dụng Web mã nguồn mở được viết bằng Java, đóng vai trò máy chủ build & test của hệ thống tích hợp liên tục. Jenkins có thể kết hợp được với hầu hết các công cụ khác của hệ thống tích hợp liên tục với nhiều nền tảng khác nhau. Ngoài ra, cộng đồng sử dụng Jenkins rất lớn nên cũng rất dễ trong việc sử dụng và hỗ trợ khi gặp khó khăn.

    Trở lại bài toán đặt ra lúc đầu, chi tiết yêu cầu như sau: Khi 1 PR mới được tạo, Jenkins sẽ bắt sự kiện và trigger để chạy job CI, CI job sẽ chạy Unit Test, checkstyle code và report kết quả. Khi PR được (merged), thì job CD sẽ chạy deploy code mới lên server test và chỉ việc chờ tới khi có thông báo deploy thành công trên Chatwork là xong :v.

    2.1. Cài đặt Jenkins

    Ở đây chúng ta còn cần phải sử dụng Github webhook để trigger những sự kiện như tạo PR hoặc merge PR, mà webhook cần phải có một public domain để hoạt động. Các bạn có thể dùng các tool để public cổng 8080 trên local thành public domain. Ví dụ như chúng tôi và làm 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

    Bước 3: Tạo job mới. Tại mục Github project nhập link 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 whitelist branch khi có pull request mới được tạo. Và nếu muốn thay đổi tên hiển thị trên pull request khi job chạy thì bạn có thể setting trong mục Trigger setup. Thêm action “Update commit status during build” và nhập tên hiển thị của job vào ô “Commit Status Context”.Bước 4: Viết script pipeline cho job.

    Việc setting đã xong, bây giờ hãy thử tạo một pull request trên repo vào nhánh master và trải nghiệm.

    2.3. Cấu hình CD

    Thật không may là github webhook chưa hỗ trợ cho chúng ta khi có sự kiện merge pull request. Vì vậy cần sử dụng plugin Generic Webhook Trigger Plugin và phân tích payload của Github webhook khi có sự kiện merge. Ở đây, chúng ta cần kiểm tra 2 trường $.action=”closed” và $.pull_request.merged=true.

    pipeline { agent any tools { maven "mvn3" } stages { stage("Checkout") { when { expssion { return current_status == "closed" && merged == "true" } } steps { echo "Checkout done." } } stage("Build") { when { expssion { return current_status == "closed" && merged == "true" } } steps { echo "Build done." } } stage("Deploy") { when { expssion { return current_status == "closed" && merged == "true" } } steps { echo "Deploy done." } } stage("Notify") { when { expssion { return current_status == "closed" && merged == "true" } } steps { echo "Notify when deploy success." } } }

    All Rights Reserved

    --- Bài cũ hơn ---

  • Icloud Là Gì, Tìm Hiểu Về Dịch Vụ Và Tài Khoản Icloud Của Apple
  • Sao Lưu Icloud Là Gì? Tất Tật Những Điều Cần Biết Về Sao Lưu Icloud
  • Giới Hạn Dung Lượng Icloud Để Làm Gì Tìm Hiểu Về Icloud
  • Icloud Drive Là Gì? Hoạt Động Như Thế Nào? Cách Quản Lý Icloud Drive
  • Tìm Hiểu Các Loại Ipad Mini? So Sánh Ipad Mini Với Các Dòng Ipad Khác
  • Bạn đang đọc nội dung bài viết Tìm Hiểu Về Jenkins Và Ci/cd trên website Cuocthitainang2010.com. Hy vọng một phần nào đó những thông tin mà chúng tôi đã cung cấp là rất hữu ích với bạn. Nếu nội dung bài viết hay, ý nghĩa bạn hãy chia sẻ với bạn bè của mình và luôn theo dõi, ủng hộ chúng tôi để cập nhật những thông tin mới nhất. Chúc bạn một ngày tốt lành!

  • Web hay
  • Links hay
  • Push
  • Chủ đề top 10
  • Chủ đề top 20
  • Chủ đề top 30
  • Chủ đề top 40
  • Chủ đề top 50
  • Chủ đề top 60
  • Chủ đề top 70
  • Chủ đề top 80
  • Chủ đề top 90
  • Chủ đề top 100
  • Bài viết top 10
  • Bài viết top 20
  • Bài viết top 30
  • Bài viết top 40
  • Bài viết top 50
  • Bài viết top 60
  • Bài viết top 70
  • Bài viết top 80
  • Bài viết top 90
  • Bài viết top 100