Build with Parameters trong Jenkins

Build with Parameters là một chức năng của Jenkins cho phép chúng ta có thể truyền một số giá trị nào đó vào Jenkins job trước mỗi khi chúng ta build chúng. Ví dụ như, các bạn có một Jenkins job để build release cho một ứng dụng nào đó. Mỗi lần build để release, các bạn cần điền release version cho tập tin release thì các bạn có thể sử dụng chức năng Build with Parameters của Jenkins để làm điều này. Cụ thể như thế nào? Chúng ta hãy cùng nhau tìm hiểu trong bài viết này, các bạn nhé!

Để làm ví dụ cho bài viết này, mình sẽ sử dụng Maven project spark-hello-world trong bài viết Hello World với Spark framework. Project này đã được push lên huongdanjava.com repository sử dụng tài khoản GitHub của mình tại https://github.com/huongdanjavacom/huongdanjava.com.

Hiện tại version của project này đang là 0.0.1-SNAPSHOT. Để có thể thay đổi version cho tập tin release mỗi khi build project này với Jenkins và không ảnh hưởng đến quá trình development, mình sẽ thay đổi một chút. Mình sẽ thêm tag <build> cùng với tag <finalName> vào tập tin cấu hình của Maven của project này để định nghĩa tên tập tin sau khi build:

với giá trị của biến version được gán từ Jenkins job.

Rồi sau đó trong câu lệnh Maven để build project này của Jenkins, mình sẽ khai báo như sau:

Khai báo -Dversion=${Version} là cách để chúng ta sử dụng biến môi trường trong Jenkins job đó các bạn! Lưu ý ở đây, biến ${Version} là biến được tạo và gán giá trị sử dụng chức năng Build with Parameters của Jenkins các bạn nhé!

Một lưu ý nữa là do hiện tại code của project này đang sử dụng syntax Lambda Expression của Java 8 nên mình cần phải thêm plugin maven-compiler-plugin:

để Maven có thể build được, vì mặc định Maven plugin trong Jenkins chỉ build được với Java syntax 1.5.

OK, bây giờ, chúng ta sẽ setup Jenkins job để build project này, các bạn nhé!



Các bước cũng tương tự như mình đã trình bày trong bài viết này nhưng để sử dụng chức năng Build with Parameters của Jenkins thì các bạn hãy đi đến phần General của Jenkins job, các bạn sẽ thấy một nút checkbox “This project is parameterized”:

Build with Parameters trong Jenkins

Click để chọn nó, các bạn sẽ thấy Jenkins hiển thị một phần cho phép chúng ta Add Parameter như sau:

Build with Parameters trong Jenkins

Ở đây, như các bạn thấy, chúng ta có nhiều loại Parameter mà chúng ta có thể sử dụng như:

  • Boolean Parameter
  • Choice Parameter.
  • Credentials Parameter.
  • File Parameter
  • Multi-line String Parameter.
  • Password Parameter
  • Run Parameter
  • String Parameter

Tuỳ vào nhu cầu của mình, các bạn có thể tìm hiểu thêm về chúng để sử dụng nhé. Trong bài viết này, nhu cầu của mình chỉ là điền version number mỗi khi build, do đó mình sẽ chọn String parameter.

Build with Parameters trong Jenkins

Ở đây, như các bạn thấy, chúng ta có 3 ô:

  • Name: dùng để đặt tên biến
  • Default Value: dùng để khai báo giá trị mặc định của biến này.
  • Description là mô tả về biến mà chúng ta muốn tạo.

Các bạn có thể điền tên biến bất kỳ, theo nhu cầu của mình. Trong ví dụ này mình sẽ điền như sau:

Build with Parameters trong Jenkins

Các bạn có thể thêm nhiều Parameter nếu muốn nhé!

Tiếp theo, mình cần sửa cấu hình cho câu lệnh Maven để build project. Như mình đã nói ở trên, câu lệnh này sẽ là:

Build with Parameters trong Jenkins

OK, vậy là phần cấu hình cho Jenkins job đã xong rồi đó các bạn. Giờ chúng ta hãy Save lại rồi chạy thử xem sao nhé!

Sau khi nhấn nút Save xong, các bạn sẽ được đưa về trang của Jenkins job. Lúc này các bạn sẽ thấy một liên kết “Build with Parameters” như sau:

Build with Parameters trong Jenkins

Nhấn vào đó, nó sẽ cho phép chúng ta điền giá trị mà chúng ta đã cấu hình, của mình như sau:

Build with Parameters trong Jenkins

Ở đây, mình đã điền release number là 1.0. Nhấn nút Build để build project này các bạn nhé!
Kết quả:

Build with Parameters trong Jenkins

Add Comment