Kodeloka
  1. Kodeloka
  2. Kelas Git & CI/CD
  3. Materi

Jenkins · Modul 15 dari 20

Trigger Jenkins Build Automatically via Webhooks (Part 4/4)

Mengirimkan Webhooks dari GitHub/GitLab ke Jenkins untuk otomatisasi build saat push commit atau merge request.

1. Konsep Kerja Webhooks CI/CD

Tanpa Webhooks, Jenkins harus memantau repositori Git dengan teknik Polling SCM (misal setiap 5 menit), yang tidak efisien dan menyebabkan penundaan (delay). Dengan Webhooks, GitHub akan secara aktif mengirimkan HTTP POST payload ke URL Jenkins begitu ada peristiwa git push.

2. Langkah Konfigurasi Webhook GitHub ke Jenkins

  1. Pastikan server Jenkins memiliki IP/Domain Publik (atau gunakan tunnel seperti ngrok http 8080 untuk pengujian lokal).
  2. Di Jenkins: Install plugin GitHub Integration Plugin.
  3. Di GitHub Repository -> Settings -> Webhooks -> Add Webhook.
  4. Payload URL: http://<JENKINS_URL>/github-webhook/
  5. Content type: application/json.
  6. Select events: Just the push event atau Pull requests.
Contoh Test Webhook Payload (HTTP POST Body)
{
  "ref": "refs/heads/main",
  "before": "0000000000000000000000000000000000000000",
  "after": "92f7a5b3a4c180901b239d1b092309101b023023",
  "repository": {
    "name": "payment-api",
    "full_name": "myorg/payment-api",
    "clone_url": "https://github.com/myorg/payment-api.git"
  },
  "pusher": {
    "name": "developer-eko"
  }
}