Menerapkan CI/CD Pada Gitlab

Hendrico Kristiawan
3 min readApr 10, 2022

--

Dalam melakukan sesuatu tentu saja kita lebih suka menggunakan hal yang bisa otomatis. Karena hal tersebut dapat mempermudah kita dalam melakukan pekerjaan tersebut. Hal tersebut tentu juga berlaku dalam mengerjakan proyek. Jika kita ingin membuat sebuah aplikasi website, tentu kita harus melakukan deploy agar proyek yang kita buat dapat digunakan dalam website tersebut. Namun jika kita melakukan hal tersebut secara manual, tentu saja akan melelahkan karena kita harus melakukan kegiatan tersebut setiap ada perubahan tersebut. Disitulah kita dapat menggunakan CI/CD agar proses tersebut dapat dilakukan secara otomatis.

Apa itu CI/CD?

Continuous integration (CI) adalah integrasi kode ke dalam repositori lalu menjalankan test secara otomatis. Sehingga setiap kamu melakukan commit dengan git, kode tersebut juga akan dilakukan test sehingga dapat memastikan perubahan yang dilakukan itu tidak membuat error setelah dijalankan.

Continous delivery atau continuous deployment (CD) adalah proses yang dilakukan setelah proses CI selesai. Sehingga kode yang tanpa error itu dapat dibangun dan dirilis secara otomatis.

Sehingga CI/CD dapat disimpulkan sebagai sebuah proses otomatis yang akan menjalankan test dan deploy setiap kali kita melakukan commit atau perubahan terhadap kode yang kita buat. Sehingga kita tidak perlu melakukan hal tersebut secara manual setiap kali kita melakukan perubahan.

Penerapan CI/CD dalam Gitlab

Dalam pengerjaan proyek PPL, kami menggunakan framework node.js sehingga kode .gitlab-ci.yml yang digunakan untuk framework tersebut.

Penjelasan line:

  • Line 9
    Jika ingin menggunakan docker, kita dapat memberikan image docker yang akan digunakan
  • Line 11–15
    Line tersebut menjelaskan tahapan apa saja yang akan dijalankan pada CI/CD. Pada proyek kami, terdapat 4 tahap. Yaitu build, test, sonarcube, dan deployment
  • Line 19–22
    Line ini untuk menentukan hal apa yang ingin disimpan ketika pipeline dijalankan. Sehingga kita dapa download file tersebut ketika diinginkan.
  • Line 24–28
    Tahap pertama yang dijalankan adalah tahap build. Yaitu menginstall dependensi yang dibutuhkan agar test dapat berjalan dengan baik
  • Line 30–43
    Tahap selanjutnya adalah menjalankan test agar kita dapat mengetahui bahwa program yang dibuat dapat berjalan tanpa error. Pada line 31–32 menandakan bahwa jika pada tahap build gagal, maka tahap ini tidak akan dijalankan.
  • Line 46–63
    Tahap selanjutnya adalah menggunakan sonarcube untuk menganalisis kode yang dibuat. Hal ini opsional dan tidak wajib jika kalian tidak membutuhkan sonarcube dalat proyek kalian.
  • Line 65–79
    Tahap yang terakhir adalah melakukan deployment agar proyek yang dibuat dapat digunakan oleh orang banyak. Karena proyek ini menggunakan heroku, maka script yang dijalankan merupakan langkah-langkah yang perlu dijalankan agar proyek kita dapat digunakan. Pada line 69–70 kita juga sudah menspesifikasikan agar script ini hanya dijalankan pada branch main.
  • Line 82–96
    Tahap ini sama seperti pada line 65–79. Namun perbedaannya terdapat pada branch dimana pipeline ini dijalankan. Tahap ini hanya dijalankan pada branch develop sedangkan deployment sebelumnya untuk branch main.

Penutup

Proses CI/CD memang terlihat sulit jika kamu tidak mengerti hal apa saja yang dijalankan. Agar lebih mudah dalam membayangkan, sebenarnya script yang dijalankan hanyalah script yang perlu dijalankan pada command line secara manual. Sehingga jika kamu ingin melakukan otomasi dengan CI/CD, maka kamu hanya perlu memasukkan hal-hal apa saja agar program yang dibuat dapat bekerja secara manual ke dalam kode CI/CD.

--

--