GitLab CI/CD
GitLab CI/CD adalah alat CI/CD (Continuous Integration/Continuous Delivery) yang terintegrasi langsung dengan GitLab. Ini memungkinkan Anda untuk mengotomatiskan alur kerja pengembangan perangkat lunak Anda, mulai dari membangun, menguji, hingga menerapkan kode Anda.
Fitur Utama GitLab CI/CD
- Integrasi Penuh: Terintegrasi langsung dengan repositori GitLab Anda, memudahkan akses kode dan pengelolaan alur kerja.
- Konfigurasi YAML: Alur kerja didefinisikan dalam file
.gitlab-ci.yml
yang fleksibel dan mudah dibaca. - Pipeline: Mengelola alur kerja CI/CD sebagai serangkaian tahap (stages) dan pekerjaan (jobs).
- Runner: Agen yang menjalankan pekerjaan CI/CD. Anda dapat menggunakan runner yang disediakan oleh GitLab atau menginstal runner Anda sendiri.
- Artefak: Menyimpan hasil build dan pengujian untuk digunakan di tahap selanjutnya atau untuk penerapan.
- Lingkungan: Mengelola lingkungan penerapan (misalnya, pengembangan, pengujian, produksi) dengan mudah.
- Integrasi Kontainer: Mendukung penggunaan kontainer Docker untuk lingkungan build yang konsisten.
- Penerapan Otomatis: Mengotomatiskan penerapan kode ke berbagai lingkungan.
Konsep Dasar GitLab CI/CD
- .gitlab-ci.yml: File konfigurasi YAML yang mendefinisikan alur kerja CI/CD.
- Pipeline: Serangkaian tahap dan pekerjaan yang dijalankan oleh GitLab CI/CD.
- Stages: Tahap-tahap dalam pipeline yang menentukan urutan eksekusi pekerjaan.
- Jobs: Pekerjaan individual yang dijalankan dalam sebuah tahap.
- Runners: Agen yang menjalankan pekerjaan CI/CD.
- Artefacts: Hasil build dan pengujian yang disimpan.
Membuat Alur Kerja GitLab CI/CD
- Buat File
.gitlab-ci.yml
: Di repositori Anda, buat file.gitlab-ci.yml
di direktori root. - Definisikan Alur Kerja: Tentukan tahap, pekerjaan, dan skrip dalam file
.gitlab-ci.yml
. - Commit dan Push: Commit dan push file
.gitlab-ci.yml
ke repositori Anda. - GitLab CI/CD Akan Menjalankan Pipeline: GitLab CI/CD akan secara otomatis menjalankan pipeline berdasarkan konfigurasi yang Anda tentukan.
Contoh Alur Kerja Sederhana
stages:
- build
- test
build-job:
stage: build
script:
- echo "Building..."
- echo "Build completed."
test-job:
stage: test
script:
- echo "Testing..."
- echo "Tests passed."