~/blog/deploy-otomatis-menggunakan-github-actions
Published on

Deploy Otomatis Node.js Dengan Menggunakan Github Actions

book2 minutes read

Github Actions

source github

Setelah sekian lama tidak menulis, akhirnya berhasil menyempatkan waktu untuk menambah postingan blog hehe ~~sok sibuk bgt~~

Okee, untuk yang sudah sering pegang server pasti tidak asing dengan tool ini ~~sok tahu tenan~~ karena memang sudah sangat terkenal dikalangan devops ~~kayaknya~~.

Jadi, apa itu github actions? API atau fitur yang disediakan oleh github untuk mengotomasi workflow berdasarkan event pada repositori kita. yakk jadi dengan adanya github actions ini kita tidak perlu lagi melakukan pekerjaan jika terjadi perubahan pada repositori kita seperti saat nge-push kodingan, atau saat ada yang pull request ke repo kita. Nah, pekerjaan berdasarkan event tersebut bisa kita otomasi dengan github actions. untuk lebih lengkapnya bisa langsung ke github saja yaa.

Disini saya akan mencontohkan bagaimana mendeploy otomatis aplikasi Node.js ke server kita sendiri.

Buat file

Buat folder .github/workflows dan file nodejs.yml pada root directory project kamu

mkdir -p .github/workflows
touch .github/workflows/nodejs.yml

Masukkan kode dibawah ini pada file nodejs.yml

Di kodingan tersebut ada beberapa {{ secrets.x }} yang berisi informasi kredensial server kita.

untuk parameter port, key dan passphrase opsional. tergantung konfigurasi ssh server kalian.

untuk parameter script berisi tentang perintah command-line pada server kalian.

Kemudian kita buat secrets tersebut di repo project github kita dengan masuk ke Settings > Secrets.

Github Setting Secret

Lalu pilih New Secret dan isikan value sesuai kredensial server kalian.

Github Setting New Secret

Terakhir, push perubahan tersebut ke repo kamu lalu buka menu Actions dan Github Actions akan berjalan otomatis.

Tambahan

untuk parameter script diatas saya menggunakan command

~/.nvm/versions/node/v12.18.0/bin/npm install
~/.nvm/versions/node/v12.18.0/bin/pm2 reload app

Disini saya menggunakan nvm untuk Node.js nya, jadi kita perlu menambahkan symlink karena command node pada script tersebut secara default akan membaca executable pada direktori /usr/bin/node jika kita tidak menambahkan symlink akan terjadi error "/usr/bin/env: node: No such file or directory"

berikut perintah untuk menambahkan symlink

sudo ln -s ~/.nvm/versions/node/v12.18.0/bin/node /usr/bin/node

Versi folder tergantung dari versi nodejs yang kalian install. Disini saya menggunakan Node versi 12.18.0.

dah sementara gitu aja, see ya~