Apa itu GitLab CI/CD?
GitLab CI/CD adalah sistem otomatisasi bawaan (built-in) yang menjadi bagian tak terpisahkan dari platform GitLab. Tanpa perlu memasang plugin tambahan pihak ketiga, GitLab menyediakan ekosistem terpadu mulai dari repositori kode, manajemen issue, pipeline CI/CD, Container Registry terintegrasi, hingga pemantauan deployment.Arsitektur GitLab CI/CD: Coordinator vs Runner
Alur kerja GitLab CI/CD ditopang oleh dua komponen utama:- GitLab Instance (Coordinator): Mengelola antrean job, memvalidasi sintaks berkas
.gitlab-ci.yml, dan menyajikan status keberhasilan pipeline di antarmuka web. - GitLab Runner: Agen perangkat lunak mandiri yang bertugas mengeksekusi perintah-perintah di dalam job. Runner dapat berjalan di mesin Linux lokal, container Docker, atau kluster Kubernetes.
Konfigurasi Berkas .gitlab-ci.yml
Seluruh alur kerja didefinisikan dalam sebuah berkas bernama .gitlab-ci.yml yang disimpan di direktori akar (root) repositori proyekmu.
Struktur Dasar Pipeline
Komponen Esensial GitLab CI
1. Artifacts vs Cache
Sering kali pemula bingung membedakan antaraartifacts dan cache:
Contoh penggunaan
cache:
2. Variabel Rahasia (CI/CD Variables)
Untuk menyimpan kredensial database, password server, atau token registry:- Buka repositori GitLab Settings CI/CD.
- Perluas bagian Variables klik Add variable.
- Centang opsi Protect variable (hanya berlaku di branch terlindungi) dan Mask variable (agar nilainya disensor bintang
***di log terminal). - Gunakan langsung di skrip menggunakan format
$NAMA_VARIABEL:
Fitur Tingkat Lanjut (Advanced GitLab CI)
1. Kontrol Eksekusi Fleksibel (rules)
Mengatur kapan sebuah job boleh berjalan atau dilewati berdasarkan branch, tag, atau isi pesan commit:
2. Docker in Docker (DinD) — Membangun Image di Pipeline
Jika aplikasimu ingin dibungkus menjadi Docker Image dan diunggah ke GitLab Container Registry:3. Lingkungan & Rollback (environment)
Fitur dasbor pelacakan deployment bawaan GitLab yang memungkinkan tim melihat versi kode apa yang saat ini aktif di server serta tombol rollback otomatis:
4. Menggunakan Multi-Project Pipeline (trigger)
Dalam arsitektur Microservices, ketika satu repositori pustaka (misal core-library) mengalami perubahan, ia dapat secara otomatis memicu (trigger) pipeline pada repositori aplikasi backend atau frontend yang bergantung padanya: