Dokumentasi Fundamental GitLab

Fundamental GitLab CI/CD

Referensi dasar GitLab, konsep CI/CD, contoh konfigurasi, runner, variables, dan artifacts.

Focus

Fundamentals

Audience

Beginner

Last Updated

January 22, 2026

Docs

GitLab CI/CD

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 RunnerKarakteristik
Shared RunnerDisediakan GitLab, cocok untuk kebutuhan umum.
Specific RunnerRunner dedicated untuk project tertentu.
Group RunnerRunner 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.

Referensi