Monday, October 21, 2024

[Jenkins] Jenkinsfile

-

Jenkinsfile là phần “lõi” của Jenkins Pipeline, được viết dựa trên cú pháp của DSL (Domain Specific Language) với ngôn ngữ chính là: Groovy DSL. Tập tin này chứa danh sách các công việc mà pipeline sẽ thực hiện, được lưu trữ trên server Jenkins hoặc trên repository của git/Bitbucket.

Jenkinsfile này sẽ thực hiện các tác vụ sau:

  • Thiết lập các biến môi trường.
  • Pull code từ git repo được chỉ định.
  • Thiết lập Jenkins workspace.
  • Thực thi đoạn script được chỉ định.
  • Sau khi thực hiện xong các tác vụ, “dọn dẹp” workspace.

Nội dung trong Jenkinsfile trên bao gồm:

  • pipeline là thành phần bắt buộc dùng để khai báo pipeline trong Jenkinsfile.
  • agent dùng để khai báo môi trường sẽ thực hiện. Nếu cấu hình là “any” thì Jenkins sẽ sử dụng bất kỳ agent nào hiện có trên hệ thống.
  • environment dùng để khai báo các biến môi trường cần thiết.
  • stages dùng để khai báo các “giai đoạn” (stage) con bên trong pipeline.
  • stage sẽ thực hiện từng công việc đã được chỉ định.
  • post sẽ được thực thi sau khi các stage hoàn tất các công việc được chỉ định. Trong Jenkinsfile trên, sau khi các stage đã thực hiện (kể cả không thành công), workspace sẽ được xóa để tránh Jenkins bị lỗi trong lần thực thi pipeline tiếp theo.

Đầu tiên bạn hãy tạo 1 job với type là Pipeline

Hãy vào kho chứa source (ví dụ của mình là Github) của bạn tạo 1 file mới có tên Jenkinsfile

Copy nội dung dưới đưa vào Jenkinsfile, đây chính là nơi thể hiện các bước thực hiện 1 job

pipeline {
    agent any
    stages{
        stage('Git clone'){
            steps{
                git branch: 'main', url: 'https://github.com/hoanghd164/webhook-and-poll-scm.git'
            }  
        }

        stage('Check folder'){
            steps{
                sh "ls"
            }  
        }

        stage('Build'){
            steps{
                echo "Build completed"
            }  
        }

    }
}

Hình ảnh sau khi truyền nội dung trên vào Jenkinsfile, hãy lưu file này lại.

Sau khi tạo xong file Jenkinsfile ta có file như mục 1 ở dưới. Hãy thực hiện copy url project của bạn theo các bước 2, 3 hình dưới. Bước 4 chính là nhánh của bạn, hãy ghi nhớ để lát chúng ta khai báo trong Pipeline của Jenkins.

Sau khi copy xong url project ta sẽ được đường link như dưới

https://github.com/hoanghd164/webhook-and-poll-scm.git

Hãy thực hiện các bước dưới để kết thúc việc khai báo repository chứa source dự án cho Jenkins, ở bước 3 chúng ta dán urk repository của project mà lúc nãy đã copy ở bước trên.

Bước số 4 bạn hãy truyền tên nhánh vào.

Kéo xuống dưới cùng, tại phần Script Path hãy trỏ tên Jenkinsfile mà chúng ta đã tạo ra trong kho repository Github ở các bước trên và lưu lại

Sau khi tạo xong job, bạn sẽ có 1 job mới như hình dưới, hãy bấm vào job vừa tạo xong để chúng ta bắt đầu build thử

Hãy bấm build now để khởi động job, chúng ta thấy job đã chạy lần thứ nhất ở phần số 2 hình dưới, các bước thực hiện ở job này được thể hiện ở phần số 3 hình dưới.

Trên đây mình đã hướng dẫn các bạn triển khai 1 job bằng Jenkinsfile, hi vọng bài viết này sẽ có ích cho các bạn.

Trân trọng.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories