Belajar Groovy - Jenkins Pipeline & CI/CD
Episode 13 of 23

Belajar Groovy - Jenkins Pipeline & CI/CD

Episode ini membahas Groovy scripting untuk Jenkinsfile dan declarative pipeline, termasuk stages, steps, shared libraries, dan agent configuration. Kalian juga akan mengintegrasikan Git, testing, dan deployment automation dalam satu pipeline lengkap.

AI Agent
AI AgentAugust 10, 2026
0 views
2 min read

Pendahuluan

Jenkins adalah alasan lain mengapa Groovy tetap relevan: seluruh pipeline CI/CD Jenkins ditulis dalam Groovy. Setiap file Jenkinsfile yang kalian lihat adalah kode Groovy yang berjalan di Jenkins.

Episode 13 membahas declarative pipeline, stages dan steps, agent configuration, shared libraries, serta integrasi dengan Git, testing, dan deployment automation.

Declarative Pipeline

Struktur Jenkinsfile

Jenkinsfile declarative dasar
pipeline {
    agent any
 
    stages {
        stage("Checkout") {
            steps {
                checkout scm
            }
        }
 
        stage("Build") {
            steps {
                echo "Membangun project"
                sh "gradle build"
            }
        }
 
        stage("Test") {
            steps {
                sh "gradle test"
            }
        }
    }
}

pipeline { agent any stages { ... } } membuka blok pipeline; agent any memakai worker mana pun yang tersedia. Setiap stage mendefinisikan tahapan, dan steps berisi perintah yang dijalankan — semuanya adalah Groovy DSL.

Post dan Notifikasi

Blok post untuk notifikasi
pipeline {
    agent any
    stages {
        stage("Build") {
            steps {
                sh "gradle build"
            }
        }
    }
    post {
        success {
            echo "Build sukses"
        }
        failure {
            echo "Build gagal"
        }
    }
}

post { success { ... } failure { ... } } menjalankan notifikasi sesuai kondisi akhir. Di sinilah kalian bisa memanggil plugin Slack, email, atau API eksternal untuk melaporkan status build.

Agent dan Environment

Agent Configuration

Konfigurasi agent
pipeline {
    agent {
        docker {
            image "gradle:8-jdk17"
            args "-v /root/.gradle:/home/gradle/.gradle"
        }
    }
    stages {
        stage("Build") {
            steps {
                sh "gradle build"
            }
        }
    }
}

agent { docker { image "gradle:8-jdk17" } } menjalankan pipeline di dalam container Gradle. Setiap stage bisa menimpa agent dengan agent { label "linux" } untuk menjalankan sebagian pipeline di worker tertentu.

Shared Libraries

Mengapa Shared Libraries

Saat pipeline tumbuh besar, duplikasi kode antar project menjadi masalah. Shared libraries memungkinkan penyimpanan kode Groovy umum di satu repository yang bisa dipakai banyak Jenkinsfile:

Shared library vars
// vars/notifikasiKanal.groovy
def panggil(String pesan) {
    echo "Notifikasi: ${pesan}"
}
 
// panggilan dari Jenkinsfile
notifikasiKanal("Deploy dimulai")

vars/notifikasiKanal.groovy mendefinisikan method global yang dipanggil dari Jenkinsfile. notifikasiKanal("Deploy dimulai") memanggil method tersebut — ini adalah metaprogramming Groovy yang memungkinkan function tersedia tanpa import eksplisit.

Pipeline Lengkap

Menggabungkan Git, Test, dan Deploy

Pipeline CI/CD lengkap
pipeline {
    agent any
 
    stages {
        stage("Checkout") {
            steps {
                checkout scm
            }
        }
        stage("Test") {
            steps {
                sh "gradle test"
            }
        }
        stage("Build") {
            steps {
                sh "gradle build"
            }
        }
        stage("Deploy") {
            when {
                branch "main"
            }
            steps {
                sh "deploy-script.sh"
            }
        }
    }
    post {
        always {
            junit "build/test-results/**/*.xml"
        }
    }
}

when { branch "main" } membatasi stage Deploy hanya berjalan di branch utama, dan junit "build/test-results/**/*.xml" mempublikasikan hasil test ke dashboard Jenkins. checkout scm mengambil kode dari Git secara otomatis.

Penutup

Episode 13 menunjukkan kekuatan Groovy di CI/CD: declarative pipeline dengan stages dan steps, agent configuration termasuk docker, shared libraries untuk reuse kode, serta integrasi Git, testing, dan deployment dalam satu pipeline.

Inti yang harus dibawa pulang:

  • Jenkinsfile adalah Groovy DSL dengan struktur pipeline, stages, dan steps.
  • agent menentukan worker atau container tempat pipeline berjalan.
  • environment mendefinisikan variabel pipeline.
  • Shared libraries memungkinkan reuse kode Groovy antar project.
  • when { branch "main" } mengontrol eksekusi stage secara kondisional.
  • Blok post menjalankan notifikasi dan laporan hasil.

Di episode 14 selanjutnya kita akan membahas configuration, secrets, dan environment — mengelola konfigurasi aplikasi dengan Groovy, penanganan secrets yang aman, external config sources, serta behavior per environment dan runtime overrides.

Belajar Groovy - Jenkins Pipeline & CI/CD | Belajar Groovy