Mengenal Jenkins: Bikin Pipeline CI/CD Pertamamu

2021-06-22 · 2 menit baca

Jenkins adalah automation server open source yang ditulis dengan Java, dan jadi salah satu tool paling umum buat menjalankan CI/CD. Intinya, Jenkins mengotomatiskan tiga hal yang biasanya dikerjakan manual: testing, build, dan deployment, setiap kali ada perubahan kode masuk.

Instalasi Jenkins

Proses paling gampang adalah lewat script instalasi yang tinggal dijalankan di server:

git clone https://github.com/hiibnu/jenkins-run.git
cd jenkins-run
./test.sh

Script ini akan menampilkan menu pilihan distro Linux (CentOS 7, Ubuntu/Debian, atau contoh Jenkinsfile). Setelah instalasi selesai, Jenkins bisa diakses lewat http://ip-server:8080 karena port default-nya 8080.

Di first-run, Jenkins minta di-unlock dulu pakai password yang otomatis dibuat:

sudo cat /var/lib/jenkins/secrets/initialAdminPassword

Setelah itu tinggal install "suggested plugins", buat akun admin, dan set Jenkins URL.

Menghubungkan ke Repo GitHub

Buat job baru bertipe Pipeline. Di tab General, centang "GitHub project" dan isi URL repo-nya. Di Build Triggers, centang "GitHub hook trigger for GITScm polling" supaya setiap push bisa memicu build.

Di tab Pipeline, pilih Git sebagai SCM (Bitbucket juga bisa pakai cara yang sama). Untuk repo publik, kolom credentials boleh dikosongkan; repo privat butuh username/password atau SSH key. Isi juga branch yang mau di-build, dan Script Path — defaultnya mencari file bernama persis Jenkinsfile.

SelanjutnyaBelajar Bun Dasar: Runtime JavaScript yang Ngebut

Supaya push benar-benar memicu build otomatis, tambahkan webhook di Settings repo GitHub yang mengarah ke http://ip-jenkins:8080/github-webhook/.

Menulis Jenkinsfile

Jenkinsfile declarative sederhana biasanya berisi blok environment, agent, dan beberapa stage:

pipeline {
  agent any
  stages {
    stage('Build') {
      steps {
        echo 'Building...'
        sh "ls -lisa"
      }
    }
    stage('Test') {
      steps { echo 'Testing...' }
    }
    stage('Deploy') {
      steps { echo 'Deploying...' }
    }
  }
}

Stage Build biasanya dipakai buat mengecek isi workspace dulu sebelum lanjut ke test dan deploy.

Yang dibahas di sini baru dasar-dasarnya. Jenkins sebenarnya bisa jauh lebih jauh, misalnya mengirim notifikasi ke Telegram atau email begitu build selesai — tapi itu cerita lain di lain waktu.