Introduction
CI/ CD merupakan sebuah jembatan antara tim operasional dan development untuk melakukan automasi pembahruan, testing, dan perilisan aplikasi. CI/CD juga berguna dalam membantu developer dan tester dalam melakukan rilis maupun update software dengan lebih cepat dan aman.CI/CD merupakan pekerjaan yang dilakukan oleh para DevOps Engineer, dimana dia bertanggung jawab untuk melakukan deployment, build dan testing otomatis dari code yang ditulis oleh programmer, nah pada kesempatan kali ini saya akan implementasikan CI CD With Github Actions part2. Github Actions sendiri adalah sebuah fitur yang ada di github untuk melakukan automation dengan menggunakan fitur workflow.
Prepare
- Visual Studio code / text editor favorit kalian
- Server ubuntu yang sudah di install nodejs bisa klik link ini untuk cara installnya.
- Dan sebuah repo nodeJS bisa kalian download disini dan pastikan anda sudah melakukan clone di server .
- Account GitHub untuk dokumentasi atau Guide github actions klik link ini.
- Dan artikel Part satu tentang Implementasi CI CD With Github Actions Part2
Implementasi CI CD With Github Actions Part2
Step 1 – Add Jobs file workflows
Melanjutkan artikel sebelumnya bahwa disini kita akan mencoba melakukan continous delivery dengan mengintegrasikan repostiory dengan server kita.
- Edit file yaml / file yang berada di github workflow menggunakan editor favorit kalian, dan disini kita akan menambahkan 1 jobs untuk continuous yaitu untuk SSH ke server kita dari github .
- Buka github marketplace lalu disitu ada syntax atau file yaml yang bisa kita gunakan/tambahkan di file workflows kita https://github.com/marketplace/actions/ssh-remote-commands
deploy:
needs: [build]
runs-on: ubuntu-latest
steps:
- name: executing remote ssh commands using password -> nama command
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.HOST }} -> Variable IP / host server kita
username: ${{ secrets.USERNAME }} --> Variable Username server kita
password: ${{ secrets.PASSWORD }} --> Variable Password server kita
port: ${{ secrets.PORT }} --> Variable Port SSH server kita
script: | -> Pipe
cd /var/www/nomads --> lokasi file directory nodejs/ aplikasi kita
ls -lah -> syntax / command yang kita jalankan
Disini saya akan membuat 1 jobs yang dimana menambahkan syntax untuk conect ke server dan menambahkan command yang biasanya kita gunakan manual di server .
Step 2 – Add Secret to Github
Disini kita akan menambahkan variable yang telah kita buat tadi di file workflows maka dari itu kita add variable tersebut di menu setting -> secret.

- Kemudian add repository secret yang dimana ada 4 yang kita tambahkan
a. HOST = IP
b. USERNAME = User server
c. PASSWORD = Password server
d. PORT = Port SSH server

Disini kita hanya bisa update dan remove jadi semisal ada yang akan akses repo tidak akan bisa melihat secret tersebut.
Step 3 – Push Repo ke Github
- Di step 1 kita sudah melakukan beberapa penambahan Jobs baru di workflow github selanjutnya adalah kita lakukan push repo ke Github, seperti biasa kita melakukan push code.
$git status #On branch master #Your branch is up to date with 'origin/master'. #Changes not staged for commit: # (use "git add <file>..." to update what will be committed) # (use "git restore <file>..." to discard changes in working directory) # modified: .github/workflows/node.js.yml no changes added to commit (use "git add" and/or "git commit -a") $git add . $git commit -m "Add Jobs Deploy" $git push origin master
Step 4 – Check GitHub Actions
Jika kita sudah melakukan update repo ke github dan juga kita sudah menyambunkan github dengan server maka semua repo yang kita update akan terintegrasi ke dalam server yang sudah di pointing menggunakan fitur secret tadi.
- Masuk ke menu GitHub Actions dan ada 2 tampilan pipelin atau jobs yang kita buat yaitu testing & deploy :
- Jobs 1 adalah Run NPM testing di versi 12 & 14
- Jobs 2 adalah deploy yang dimana isinya adalah (conect ke server menggunakan ssh dan menjalankan script atau command yang kita buat)

- Dengan output jobs deploy akan terlihat seperti ini

Disini di point 2 menandakan bahwa saya memperintahkan pipe line untuk menampilkan file di directory /home/dev/cicd-gunawan/calculate-bwa dan hasilnya successfully, tandanya konfigurasi kita berhasil melakukan Continuous Delivery parti 1 di Github actions.
Selanjutnya akan kita implementasikan untuk Continuous Delivery Part 2 artikel berikutnya, dan selamat mencoba.

Admin website igunawan.com, System Administrator, DevOps Engineer
