Làm quen với CI&CD phần 1 build source với jenkins

Chào các bạn.

Ở bài trước mình đã túm váy những khái niệm ở bản về Devops rồi ở bài này mình sẽ hướng dẫn các bạn sử dụng jenkins để build source trên git. ở đây mình sẽ mặc định các bạn có hiểu biết 1 chút về maven, java, và git mình chỉ tập nếu chưa biết thì các bạn tự mò cài đống trên trên google nhé.

Đầu tiên ta sẽ dowload jenkins về máy ở trang https://jenkins.io/download/ các bạn lựa chọn phiên bản phù hợp với hệ điều hành mình đang sử dụng nhé ở đây mình sẽ hướng dẫn các bạn làm trên window cho các bạn dễ tiếp cận ok download xong thì ta giải nén lấy file cài đặt jenkins.msi  và cài đặt như bình thường sau khi cài xong ta ấn finish lúc này hệ thống sẽ tự mở trình duyệt tới localhost:8080 như trong hình

Mở theo đường dẫn trên màn hình để lấy password cài đặt  các bạn ấn tổ hợp Window + R rồi paste đường dẫn C:\Program Files (x86)\Jenkins\secrets\initialAdminPassword  chọn mở bằng notepad sau đó coppy password điền vào ô input và ấn continue 

ấn chọn Install suggested Plugins để jenkins tự động cài đặt những plugins cần thiết

Bây giờ đi pha tách coffee đợi jenkins download những plugin cần thiết

Sau khi cài đặt xong các plugin nó sẽ chuyển sang trang đăng kí account admin các bạn điền các thông tin cần thiết vào

Hoàn tất mọi thủ tục ta vào trang chủ của jenkins ta vào Manage Jenkins -> Global Tool Configuration để setup git, maven và những thứ cần thiết

 

ở đây mình sẽ setup 3 thứ cơ bản để build 1 dự án java đó là JAVA_HOME, MAVEN, và GIT như hình

OK vậy là môi trường để build 1 project đơn giản đã xong giờ tới việc tạo 1 dự án và buid thử 1 dự án java nhé trở về trang chủ click vào New Item  để tạo 1 dự án jenkins mới

ở đây có Enter an item name   các bạn điền tên dự án của mình vào phần dưới là phần lựa chọn loại dự án , có nhiều lựa chọn cho bạn như Freestyle project là tạo dự án được setup bằng UI có nghĩa là sẽ có UI cụ thể cho bạn setup rất tiện cho bạn nào mới vào tìm hiểu như mình và Pipeline có nghĩa là bạn sẽ điều khiển setup bằng script Pipeline ở đây mình chọn Pipeline vì nó dễ tùy biến hơn

Sau khi tạo thành công dự án sẽ được như hình

Tạm bỏ qua những thứ lằng nhằng phía trên cái này mình sẽ hướng dẫn chi tiết cho các bạn ở bài sau giờ chúng ta tập trung vào Pipeline  nói qua về Pipeline là script được viết bằng ngôn ngữ Groovy  (groovy lại dùng plugin của java nên chung quy nó là java :)) ) 1 dự án pipeline sẽ được chạy theo script này có thể nhúng được cả các câu lệnh của CMD, powershell  trên window  và các lệnh của linux hoặc macos.. nói qua vậy thui

giờ các bạn ấn vào Try sample Pipeline chọn Github+maven để generate  script mẫu

Ở đây chỉ dùng 2  bước là get source từ github và buid bằng maven thui  nên mình sẽ xóa bước chạy junit state Results  sửa 1 chút về link chứa source ở đây mình sẽ dùng source Spring Boot ở bài hướng dẫn  Làm chủ spring boot bằng cách tạo cách tạo crud trong 30 phút   để build thử phần mvnHome = tool ‘M3’  ta sửa thành tên biến môi trường đã setup trong Global Tool Configuration sửa soạn 1 lúc thì ta được script sau

node {
def mvnHome
stage(‘Preparation’) { // for display purposes
// Get some code from a GitHub repository
git ‘https://github.com/devtayto/RestApiSpringBoot.git’
// Get the Maven tool.
// ** NOTE: This ‘M3’ Maven tool must be configured
// ** in the global configuration.
mvnHome = tool ‘maven_devtayto.com’
}
stage(‘Build’) {
// Run the maven build
if (isUnix()) {
sh “‘${mvnHome}/bin/mvn’ -Dmaven.test.failure.ignore clean package”
} else {
bat(/”${mvnHome}\bin\mvn” -Dmaven.test.failure.ignore clean package/)
}
}
}

Oke bây giờ save và ấn vào build now   để chạy thử thui

Sau khi buid ta được như hình

Để xem console log ta chọn vào job đang chạy chọn Console output để xem tình  trạng

xem log ta có thể control được tiến trình job đang chạy ở đây mình đã buid thành công project của mình

Vậy là xong cách get source và buid source bằng maven, vậy đây là CI&CD không phải đây chỉ là cách build source thui chưa dính dáng gì tới CI&CD cả kịch hay còn đợi phía sau hẹn gặp lại các bạn trong phần tiếp theo :))

Chúc các bạn thành công.!