Hi gengz, kali ini kita akan belajar untuk membuat job Jenkins via REST API. Mari kita cek dulu diagramnya ya.
Diagram

Alur Kerja
- Kita akan melakukan POST dan mengirimkan parameter berupa Git Url ke Jenkins
- Jenkins akan membaca parameter yang kita kirimkan, dan membuat job menggunakan Job DSL
- Job akan terbuat, dan langsung connected dengan git yang kita assign di Git Url Parameter
Instalasi Jenkins
Untuk mempermudah instalasi, silahkan masuk ke git berikut
https://github.com/ludesdeveloper/jenkins-kubernetes-lets-encrypt
Instalasi Plugin Job DSL
Silahkan masuk ke Manage Plugins

Install Job DSL plugin

Checklist Restart Jenkins

Ngopi dulu gengz

Membuat Job Untuk DSL
Mari kita click New Item

Pilih Freestyle project, beri nama job, lalu klik OK

Pilih Process Job DSLs

Silahkan pilih Use the provided DSL script, silahkan paste contoh script yang ada, klik Apply dan Save

pipelineJob("From-GitHub") {
description()
keepDependencies(false)
triggers {
scm('')
}
definition {
cpsScm {
scm {
git {
remote {
url("https://github.com/ludesdeveloper/multistage_docker_golang.git")
}
branch("*/master")
}
}
scriptPath("Jenkinsfile")
}
}
disabled(false)
}
Testing Pembuatan Job DSL
Mari kita klik job yang sudah kita buat

Klik Build Now

Agent akan terbuat, tunggu sejenak ya

Klik disini untuk melihat output

Klik Console Output

Job sukses, anda bisa scroll kebawah untuk melihat output log

Yuk kita ke dashboard dulu untuk check hasilnya

Selamat ya, sudah jadi nih

Delete Job
Mari kita belajar untuk delete job, arahkan mouse sebelah kanan dari job name

Klik panah kebawah, dan pilih delete

Menambahkan Parameter di Job DSL
Mari lihat konfigurasi dari job dsl kita

Tambahkan parameter string


Tambahkan parameter baru seperti dibawah ini

GITHUB_URL
https://github.com/ludesdeveloper/multistage_docker_golang.git
Scroll kebawah, dan update script yang kita punya, klik Apply dan Save

pipelineJob("From-GitHub") {
description()
keepDependencies(false)
triggers {
scm('')
}
definition {
cpsScm {
scm {
git {
remote {
url("$GITHUB_URL")
}
branch("*/master")
}
}
scriptPath("Jenkinsfile")
}
}
disabled(false)
}
Silahkan Build kembali ya, dan check hasilnya di job From-GitHub

Bisa temen temen perhatikan, bahwa repository urlnya tepat, berarti Jenkins berhasil membaca String Parameter yang kita berikan
Konfigurasi Remote Build via POST (Jenkins)
Silahkan ikuti konfigurasi dibawah ini, lalu Apply dan Save

Konfigurasi Remote Build via Post (Postman)
Pertama kita akan mendapatkan crumb dengan konfigurasi dibawah ini

/crumbIssuer/api/json
Lalu kita akan melakukan POST dengan konfigurasi dibawah ini

/job/connect-to-git/buildWithParameters?token=belajarjenkins
Authorization menggunakan username admin dan password Jenkins

Silahkan update github dengan yang anda miliki, atau public github untuk mengetahui bahwa POST job sudah berhasil

Hasil
Silahkan check di job From-GitHub, disini saya mengganti parameter GITHUB_URL, dan berhasil, hehehehe

Penutup
Mudah mudahan artikel ini bermanfaat ya gengz, sebagai gambaran bagaimana caranya untuk melakukan POST ke jenkins untuk mempermudah otomasi. Sehat selalu untuk kalian
Tinggalkan Balasan