Apa Itu GitLab
GitLab adalah platform DevOps yang menyediakan repositori Git, kolaborasi tim, issue tracking, dan CI/CD terintegrasi dalam satu produk.
Repository
Source control
CI/CD
Pipeline automation
DevOps
End-to-end flow
Konsep Dasar CI/CD
- CI: Menjalankan build dan test otomatis setiap ada perubahan kode.
- CD: Mengemas dan mendistribusikan aplikasi hingga siap rilis.
- Pipeline terdiri dari stages dan jobs yang dieksekusi berurutan atau paralel.
Tujuan utamanya adalah mempercepat delivery, mengurangi error, dan menjaga kualitas rilis.
Contoh Konfigurasi CI/CD
Berikut contoh minimal konfigurasi .gitlab-ci.yml:
stages:
- build
- test
- deploy
build:
stage: build
image: maven:3.9.9-eclipse-temurin-17-alpine
script:
- mvn -B clean compile
artifacts:
paths:
- target/
unit_test:
stage: test
script:
- mvn -B test
deploy_dev:
stage: deploy
script:
- echo "Deploy ke environment dev"
GitLab Runners
Runner adalah agen yang mengeksekusi job CI/CD. Runner bisa berupa shared runner dari GitLab atau runner private milik tim.
| Tipe Runner | Karakteristik |
|---|---|
| Shared Runner | Disediakan GitLab, cocok untuk kebutuhan umum. |
| Specific Runner | Runner dedicated untuk project tertentu. |
| Group Runner | Runner untuk beberapa project dalam satu grup. |
Variables
Variables menyimpan konfigurasi seperti token, URL, atau kredensial yang tidak boleh hardcoded di repo.
variables:
SONAR_HOST_URL: "https://sonar.example.com"
DEPLOY_ENV: "staging"
- Mendukung masking dan protection.
- Bisa diset di tingkat project atau group.
Artifacts
Artifacts adalah file hasil build yang disimpan untuk dipakai job berikutnya atau diunduh dari UI GitLab.
artifacts:
paths:
- target/*.jar
expire_in: 7 days
when: on_success
Artifacts umum digunakan untuk JAR/WAR, report test, dan coverage.
Praktik Terbaik
- Gunakan stages yang jelas: build → test → deploy.
- Simpan secrets di variables, bukan di repo.
- Manfaatkan cache dan artifacts untuk efisiensi.
- Batasi deploy production dengan approval manual.