Membuat Job Jenkins via REST API

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

Diagram

Alur Kerja

  1. Kita akan melakukan POST dan mengirimkan parameter berupa Git Url ke Jenkins
  2. Jenkins akan membaca parameter yang kita kirimkan, dan membuat job menggunakan Job DSL
  3. 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

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout /  Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout /  Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout /  Ubah )

Connecting to %s

Situs yang Didukung WordPress.com.

Atas ↑

%d blogger menyukai ini: