Press "Enter" to skip to content

CI/CD Via Ftp Dengan Github Actions

fadli 0

CI/CD Via Ftp Dengan Github Actions.

CI/CD merupakah salah satu praktik dari DevOps yang bertujuan untuk membangun perangkat lunak menjadi lebih efektif dan teroganisir.

Kalau kamu cari pengertian mengenai CI/CD di google, pasti sudah banyak yang membahas nya, kamu bisa baca sendiri disana ya hehe, buat kamu yang menemukan artikel ini, pastinya sudah memahami juga apa itu CI/CD.

Pengertian CI/CD kurang lebih seperti ini, CI/CD (Continuous Integration/Continuous Deployment) adalah proses otomatisasi yang mengintegrasikan dan menguji kode, serta memperbarui aplikasi secara terus-menerus.

Fungsi utama CI/CD adalah untuk memastikan bahwa aplikasi bekerja dengan baik dan selalu up-to-date.

Inti nya, CI/CD itu adalah sebuah proses untuk melakukan deployment ke server secara otomatis.

Jadi ketika kita melakukan commit & push ke salah satu branch pada git project kita, maka updatean tersebut juga akan otomatis masuk kedalam server kita.

CI/CD Via Ftp Dengan Github Actions

Sebelum nya minin juga pernah membahas tentang cara gampang upload project ke hosting dengan vscode sftp, sekali save langsung ter-upload, yang penasaran silahkan baca postingan nya disini.

Untuk yang sekarang sebetulnya secara teknis mirip2 seperti vscode SFTP, karena masih menggunakan media yang sama sebagai penghubung nya, yaitu Koneksi FTP.

Hanya saja jika kita menggunakan CI/CD, maka akan lebih ter-organisir serta mengurangi terjadi nya bentrokan atau tumpang tindih source code saat melakukan update deploy ke server.

Jadi kalau kalian ingin melakukan deployment ke server, mimin menyarankan untuk menggunakan CI/CD, salah satu platform nya yaitu dengan menggunakan github actions seperti yang mimin jelaskan pada artikel ini.

Penasaran dengan cara implementasi nya? Langsung saja kita mulai praktekan langkah-langkah nya.

Persiapan

Ada beberapa hal yang perlu kalian persiapkan.

1. Menggunakan Github

Pertama kalian perlu push folder project nya kedalam github, kenapa harus github? Ya sesuai dengan judul nya, karena kita akan menggunakan salah satu fiturĀ  yang ada pada github, yaitu github Actions.

2. Membuat akun ftp

Karena media yang akan kita gunakan untuk menghubungkan antara github dengan server nya adalah melalui FTP, maka kalian wajib membuat akun FTP nya terlebih dahulu.

Untuk cara pembuatan akun FTP pada cpanel sudah pernah mimin bahas pada postingan sebelum nya, silahkan kalian kunjungi postingan nya disini..

Mulai Menjalankan CI/CD nya

Setelah semua persiapan nya sudah dilakukan, sekarang kita buka repositori github nya, kemudian klik tab menu Actions seperti berikut:

CI/CD Via Ftp Dengan Github Actions

Kemudian pada bagian Search workflows, ketikkan “laravel” dan kemudian tekan enter.

Kalian tidak harus mencari workflow laravel, bisa mencari workflow PHP, atau python, atau javascript, atau yang lainnya.

Karena tujuan nya yaitu hanya untuk mendapatkan file konfigurasi .yml nya.

Maka nanti akan muncul seperti berikut, dan kemudian klik button configure.

CI/CD Via Ftp Dengan Github Actions

Saya tekankan sekali lagi ya, disini kita tidak harus mencari workflow untuk laravel, kalian bisa cari PHP, Python, Javascript, atau sebagai nya.

Kalau kalian cari workflow javascript, maka akan muncul 12 list workflow seperti berikut ini:

CI/CD Via Ftp Dengan Github Actions

Kalau kalian mencari python, maka akan muncul 9 list workflow seperti berikut:

CI/CD Via Ftp Dengan Github Actions

Kalian bisa pilih workflow yang mana saja, bebas, kalian boleh klik button configure workflow yang mana saja.

Karena yang kita butuhkan adalah file konfigurasi .yml nya, apapun isi nya, nanti akan kita ubah sendiri, atau akan kita konfigurasi ulang sesuai dengan akun ftp yang telah kita buat.

Setelah button configure nya di klik, maka akan muncul halaman seperti berikut:

CI/CD Via Ftp Dengan Github Actions

Langsung saja di commit seperti pada gambar diatas.

Kemudian selanjutnya coba buka folder project kalian didalam sebuah text editor, kemudian lakukan pull untuk mendapatkan updatean terbaru atau untuk mendapatkan file .yml nya yang sebelumnya sudah di commit.

Kemudian ubah file .yml tersebut menjadi seperti berikut ini:

on:
  push:
    branches:
      - master
name: ? Deploy website To Production
jobs:
  web-deploy:
    name: ? Deploy
    runs-on: ubuntu-latest
    steps:
    - name: ? Get latest code
      uses: actions/checkout@v2
    
    - name: ? Sync files
      uses: SamKirkland/FTP-Deploy-Action@4.3.0
      with:
        server: "sangcahaya.id"
        username: "username@sangcahaya.id"
        password: "passwordnya"
        server-dir: "/public_html/sangcahaya/"

Kemudian kalian konfigurasi ulang sesuai dengan akun ftp kalian.

CI/CD Via Ftp Dengan Github Actions

Kalian perhatikan gambar diatas, pada baris ke-4 kita menentukan branch apa yang akan men-trigger proses CI/CD nya.

Contoh diatas saya memilih branch master, jadi ketika kita melakukan commit & push kedalam branch master, maka proses CI/CD nya akan dijalankan.

Kemudian pada bagian yang saya beri tanda kotak merah, itu kalian ganti dengan konfigurasi FTP masing-masing.

  1. server: Isi dengan host ftp kalian.
  2. username: isi dengan username ftp kalian.
  3. password: isi dengan password ftp kalian.
  4. server-dir: isi dengan path/lokasi folder project aplikasi nya, dan ingat ya, wajib diakhiri dengan garis miring (“/”).

Setelah itu, silahkan kalian lakukan commit & push.

Mengecek Proses CI/CD nya

Untuk mengecek proses CI/CD nya apakah berjalan lancar atau tidak, kalian bisa monitoring langsung melalui web github nya, buka repositori nya, dan masuk kedalam tab menu actions.

CI/CD Via Ftp Dengan Github Actions

Dari menu tersebut kalian bisa mengetahui apakah proses nya gagal, berhasil, atau sedang berlangsung.

Oh ya sebagai informasi, ketika proses CI/CD nya berhasil running untuk yang pertama kali nya, biasanya akan memakan waktu berjam-jam, bahkan pada contoh diatas saya sampai memakan waktu 3 jam untuk proses sinkronisasi nya.

Tapi untuk proses-proses selanjutnya, biasanya hanya memakan waktu sekitar 20-30 detik saja.

Multiple CI/CD

Kalian juga bisa membuat multiple process CI/CD.

Jadi misalkan anggap saja kita memiliki 2 server, yaitu server staging dan server production.

Kemudian pada github repository nya, kita memiliki 2 branch, anggap saja yaitu branch master dan branch development.

Nah kita ingin ketika melakukan commit & push ke branch development, maka updatean nya akan masuk ke server staging.

Tapi ketika kita melakukan push ke branch master ataupun melakukan merge kedalam branch tersebut, maka updatean nya akan masuk kedalam server production.

Nah caranya kalian tinggal buat lagi aja file .yml nya, kalian copy dari file .yml yang sebelumnya, jadi nanti akan ada 2 file .yml.

CI/CD Via Ftp Dengan Github Actions

Masing2 file .yml nya kalian sesuaikan sendiri branch dan server-dir nya.

Tidak ada batasan juga untuk menentukan berapa jumlah file .yml nya.

Kalau kalian punya 5 server dan 5 branch, kalian juga bisa membuat 5 file .yml nya.

Menyembunyikan Credential Nya Dengan Github Secrets

Nah ini adalah hal penting yang wajib kamu lakukan jika kamu ingin tetap menjaga kerahasiaan credential nya.

Selama ini kita menulis server host atau username ataupun password nya langsung didalam file .yml nya kan?

Ketika nanti ada user lain yang mengclone repositori tersebut, maka user tersebut juga akan mengetahui credential ftp nya, karena semua nya sudah tertulis didalam file .yml nya.

Agar hal tersebut tidak terjadi, kita perlu menyembunyikan credential nya menggunakan github secrets.

Cara nya, silahkan kalian masuk kedalam halaman repositori nya, kemudian masuk kedalam menu settings.

CI/CD Via Ftp Dengan Github Actions

Selanjutnya pada bagian menu sidebar nya, buka menu Secrets and variables, lalu klik menu actions, maka nanti akan muncul tampilan seperti berikut:

CI/CD Via Ftp Dengan Github Actions

Kemudian pada pojok kanan atas, silahkan kalian klik button “New repository secret” untuk membuat variable secret baru nya, kalian isi seperti berikut:

KEYSECRET
FTP_HOSTKalian masukkan host FTP nya
FTP_USERNAMEUsername FTP nya
FTP_PASSWORDPassword FTP nya
SERVER_DIRLokasi Folder Project nya, ingat ya, selalu diakhiri dengan garis miring ("/")

Jadi akan ada 4 key secret yang akan kita tambahkan seperti pada table diatas.

CI/CD Via Ftp Dengan Github Actions

CI/CD Via Ftp Dengan Github Actions

CI/CD Via Ftp Dengan Github Actions

CI/CD Via Ftp Dengan Github Actions

Kemudian untuk cara pemanggilan secret key pada file .yml nya adalah seperti berikut:

CI/CD Via Ftp Dengan Github Actions

${{ secrets.KEY_SECRET_NYA }}

Dengan memanfaatkan fitur github secrets, kita dapat menjaga kerahasiaan credential FTP nya, keren kan?

Mengecek Process Yang Error

Terkadang proses CI/CD nya tidak selalu berjalan mulus, ada kala nya terjadi error.

Seperti yang sudah mimin katakan sebelumnya, untuk monitoring proses CI/CD nya kalian bisa cek melalui menu actions, dan ketika ada yang error, akan ditandai dengan tanda silang merah seperti berikut:

CI/CD Via Ftp Dengan Github Actions

Untuk cek detail error nya, kalian tinggal klik aja, maka nanti kita bisa menemukan informasi dari error tersebut.

CI/CD Via Ftp Dengan Github Actions

Kalau misalkan kalian ingin menjalankan ulang proses CI/CD nya, kalian tinggal klik aja button Re-run jobs yang berada di pojok kanan atas.

Nanti akan muncul 2 opsi yang bisa kalian pilih, “Re-run failed jobs” atau “Re-run all jobs”, kalian pilih aja yang “Re-run failed jobs”.

Support Us

Jika artikel ini bermanfaat untuk kamu, membantu menyelesaikan masalah yang sedang kamu hadapi, kamu juga bisa dukung kami dengan mengunjungi halaman berikut: https://saweria.co/sangcahayaid

Leave a Reply

Your email address will not be published. Required fields are marked *

%d bloggers like this: