Senin, 27 Februari 2023

Cara Deploy NodeJs Menggunakan CI/CD gitlab-ci.yml

Ada banyak cara untuk mengupload hasil pekerjaan menggunakan nodejs ke server baik staging atau production. Jika kita menggunakan gitlab untuk mengelola coding bersama team kita bisa menggunakan fiture CI/CD untuk melakukan deployment. Kita hanya perlu menentukan branch sebagai syarat kapan coding kita diperlukan upload ke server. Cara untuk memanfaatkan fiture tersebut cukup mudah. Cukup buat file gitlab-ci.yml di root directory project. Setelah itu copy perintah berikut :


Untuk penjelasan perintah diatas adalah sebagai berikut :
image: totorajo/pm2-node3:18-buster adalah docker image yang akan kita gunakan untukd deploy. Didalam docker images tersebut perlu diinstall apa yang menjadi keperluan apps nodejs berjalan. Kita bisa membuat versi sendiri sesuai kebutuhan. image: totorajo/pm2-node3:18-buster adalah docker image yang siap pakai keperluan build apps nodejs.

poc adalah nama pipeline atau bisa kita sebut sebagai nama proses supaya mudah dipahami. Silahkan rubah menjadi misal : staging, production atau istilah lain sesuai kebutuhan develop.

stage: deploy adalah nama tahapan proses upload. Bisa diganti dengan stage: build atau disesuaikan istilah berdasarkan flow team yang ada.

before_script: adalah proses instalasi service yang diperlukan. Step ini sama seperti kita mempersiapkan laptop kita sebelum mengerjakan project.

script: adalah proses yang kita lakukan dilocal ketika apps kita akan dilakukan testing. Dalam kasus ini kita akan melakukan build coding nodejs menjadi file pada directory dist/

only: kita isi branch mana yang menjadikan trigger deploy. Jika kita isi misal test, staging maka setiap ada push ke branch tersebut makan proses ci/cd akan berjalan.

$private_key_server adalah nama variabel dari private key untuk server yang akan menjadi tujuan upload. untuk melakukan setup variabel ini bisa dilakukan di menu setting CI/CD bagian variabel.



docker@120.226.138.129:/home/apps/ : docker@120.226.138.129 adalah username dan IP untuk login ssh server. Kemudian /home/apps adalah lokasi folder dimana file / coding akan diupload. Bisa sesuaikan dengan lokasi server yang dipakai.

Dengan menggunakan fiture ci/cd pada gitlab akan meningkatkan produktivitas karena kita bisa fokus pada pengembangan apps untuk keperluan upload ke server secara otomatis. Peran DevOps untuk keberhasilan implementasi cara tersebut diperlukan. Meski akan menjadi repot diawal percayalah selanjutnya team bisa lebih produktif. Jika proses pipeline berhenti dan terjadi error permission denied silahkan ikuti https://www.totorajo.web.id/2022/10/cara-mengatasi-key-permission-denied.html
Semoga membantu.



0 Comments:

DomaiNesia