Lompat ke konten Lompat ke sidebar Lompat ke footer

Cara Mengintegrasikan CI/CD dengan GitHub Actions


Continuous Integration (CI) dan Continuous Deployment (CD) adalah dua konsep yang telah menjadi standar dalam pengembangan perangkat lunak modern. Praktik ini memungkinkan pengembang untuk mengotomatisasi proses build, test, dan deploy aplikasi, sehingga meningkatkan kualitas kode dan efisiensi tim pengembang. Salah satu alat yang paling banyak digunakan untuk mengimplementasikan CI/CD adalah GitHub Actions.

GitHub Actions adalah layanan yang disediakan oleh GitHub untuk mengotomatisasi alur kerja pengembangan perangkat lunak, termasuk pengujian, build, dan deployment. Dalam artikel ini, kita akan membahas cara mengintegrasikan CI/CD menggunakan GitHub Actions dengan langkah-langkah yang jelas dan mudah diikuti.

Apa Itu CI/CD dan Mengapa Penting?

Sebelum memulai dengan GitHub Actions, penting untuk memahami dasar-dasar CI/CD.

  1. Continuous Integration (CI): CI adalah praktik menggabungkan perubahan kode secara rutin ke dalam repositori pusat. Setiap kali pengembang melakukan commit ke repositori, server CI akan secara otomatis menarik perubahan terbaru, membangun aplikasi, dan menjalankan serangkaian tes untuk memastikan bahwa kode baru tidak merusak aplikasi.

  2. Continuous Deployment (CD): CD adalah proses otomatis untuk mendorong perubahan kode ke lingkungan produksi setelah aplikasi berhasil melewati proses build dan pengujian. CD memastikan bahwa aplikasi selalu dapat dideploy kapan saja, dengan meminimalkan waktu downtime dan bug di lingkungan produksi.

Mengapa GitHub Actions?

GitHub Actions menawarkan berbagai keunggulan untuk CI/CD, di antaranya:

  • Integrasi yang erat dengan GitHub: Karena GitHub Actions langsung terintegrasi dengan GitHub, Anda tidak perlu mengonfigurasi alat eksternal atau memikirkan sinkronisasi.
  • Workflow yang Dapat Disesuaikan: GitHub Actions memungkinkan Anda untuk menyesuaikan alur kerja dengan menggunakan YAML (Yet Another Markup Language), yang memberikan fleksibilitas dan kontrol penuh terhadap alur kerja CI/CD Anda.
  • Mendukung Banyak Bahasa Pemrograman: GitHub Actions dapat digunakan untuk proyek dengan berbagai bahasa pemrograman, seperti Node.js, Python, Java, Ruby, dan banyak lagi.
  • Ekstensi Marketplace: GitHub menyediakan marketplace yang memungkinkan Anda untuk menemukan banyak aksi yang sudah siap pakai untuk mendukung alur kerja CI/CD Anda.
Langkah 1: Menyiapkan Repositori GitHub

Sebelum memulai dengan GitHub Actions, pastikan Anda sudah memiliki repositori di GitHub. Berikut adalah cara untuk membuat repositori baru dan mempersiapkannya untuk CI/CD:

  1. Buat Repositori Baru:

    • Pergi ke halaman GitHub Anda dan klik tombol New untuk membuat repositori baru.
    • Berikan nama repositori, misalnya my-ci-cd-demo.
    • Pilih visibilitas repositori (public atau private).
    • Inisialisasi repositori dengan file README.md (opsional).
  2. Clone Repositori ke Mesin Lokal: Setelah repositori dibuat, clone repositori ke komputer lokal Anda menggunakan perintah Git berikut:

    git clone https://github.com/username/my-ci-cd-demo.git
    cd my-ci-cd-demo
    
  3. Siapkan Aplikasi: Anda dapat menggunakan aplikasi yang sudah ada atau membuat aplikasi baru. Misalnya, Anda bisa membuat aplikasi Node.js, Python, atau aplikasi lainnya.

Langkah 2: Membuat Workflow dengan GitHub Actions

Setelah repositori Anda siap, langkah selanjutnya adalah membuat alur kerja CI/CD dengan GitHub Actions. GitHub Actions menggunakan file konfigurasi dalam format YAML yang disimpan di dalam folder .github/workflows dalam repositori Anda.

2.1. Struktur Direktori GitHub Actions

Di dalam repositori Anda, buat direktori berikut:

mkdir -p .github/workflows

Direktori .github/workflows adalah tempat GitHub Actions mencari file konfigurasi workflow yang akan dijalankan.

2.2. Membuat File Workflow untuk CI

Sekarang, kita akan membuat file workflow pertama untuk Continuous Integration. Misalnya, kita akan mengonfigurasi workflow untuk aplikasi Node.js. Buat file YAML baru dalam direktori .github/workflows dengan nama ci.yml:

touch .github/workflows/ci.yml

Buka file tersebut dan tambahkan konfigurasi berikut:

name: Node.js CI

on:
  push:
    branches:
      - main
  pull_request:
    branches:
      - main

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
    - name: Checkout code
      uses: actions/checkout@v2

    - name: Set up Node.js
      uses: actions/setup-node@v2
      with:
        node-version: '14'

    - name: Install dependencies
      run: npm install

    - name: Run tests
      run: npm test

Penjelasan konfigurasi:

  • on: Menentukan event yang memicu workflow ini. Di sini, kita memicu workflow ketika ada push atau pull request ke cabang main.
  • jobs: Menentukan pekerjaan yang akan dijalankan dalam workflow.
  • build: Nama pekerjaan yang menjalankan langkah-langkah build.
  • runs-on: Menentukan sistem operasi tempat pekerjaan ini dijalankan (dalam hal ini, menggunakan ubuntu-latest).
  • steps: Langkah-langkah dalam pekerjaan, seperti memeriksa kode, menyiapkan Node.js, menginstal dependensi, dan menjalankan tes.

2.3. Menambahkan File Workflow untuk CD (Continuous Deployment)

Setelah workflow CI berhasil dijalankan, Anda dapat menambahkan workflow untuk CD. Untuk tutorial ini, kita akan menggunakan Heroku sebagai platform untuk melakukan deploy aplikasi. Berikut adalah langkah-langkah untuk membuat alur kerja CD.

Buat file baru dengan nama cd.yml dalam direktori .github/workflows:

touch .github/workflows/cd.yml

Kemudian buka file tersebut dan tambahkan konfigurasi berikut:

name: Deploy to Heroku

on:
  push:
    branches:
      - main

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v2

      - name: Set up Heroku CLI
        uses: akshnz/heroku-cli-action@v1
        with:
          heroku_api_key: ${{ secrets.HEROKU_API_KEY }}

      - name: Deploy to Heroku
        run: |
          heroku git:remote -a your-heroku-app-name
          git push heroku main

Penjelasan konfigurasi:

  • on: Menentukan event yang memicu alur kerja CD ini, yaitu ketika ada push ke cabang main.
  • deploy: Nama pekerjaan yang menjalankan langkah-langkah deploy.
  • Set up Heroku CLI: Menggunakan aksi GitHub untuk menginstal Heroku CLI.
  • Deploy to Heroku: Menggunakan perintah git push untuk mendorong aplikasi ke Heroku.

2.4. Mengonfigurasi Secrets Heroku API Key

Untuk keamanan, Anda harus menyimpan API key Heroku Anda di GitHub Secrets agar dapat diakses dalam workflow. Ikuti langkah-langkah berikut:

  1. Kunjungi halaman Settings repositori Anda di GitHub.
  2. Pilih Secrets di menu sebelah kiri.
  3. Klik tombol New repository secret dan masukkan nama HEROKU_API_KEY dan nilai berupa API key Heroku Anda.

API key ini akan digunakan oleh GitHub Actions untuk melakukan autentikasi ke Heroku.

Langkah 3: Menjalankan dan Memverifikasi Workflow

Sekarang, Anda telah mengonfigurasi dua workflow:

  1. CI Workflow: Untuk membangun dan menguji aplikasi setiap kali ada perubahan kode di cabang main.
  2. CD Workflow: Untuk melakukan deploy aplikasi ke Heroku setelah perubahan berhasil diterima di cabang main.

Untuk memverifikasi bahwa semuanya bekerja dengan baik:

  1. Push perubahan ke repositori:

    git add .
    git commit -m "Add CI/CD workflows"
    git push origin main
    
  2. Periksa status di GitHub:

    • Pergi ke halaman repositori GitHub Anda dan klik tab Actions.
    • Anda akan melihat status workflow CI dan CD yang baru saja dijalankan.

Jika semua langkah berjalan dengan sukses, aplikasi Anda akan teruji dan terdeploy secara otomatis!

Dengan menggunakan GitHub Actions, Anda dapat dengan mudah mengintegrasikan CI/CD ke dalam repositori GitHub Anda. Proses otomatisasi ini meningkatkan efisiensi, mengurangi kesalahan manual, dan memastikan aplikasi selalu siap untuk dirilis ke lingkungan produksi. Dalam tutorial ini, kami telah menunjukkan cara mengonfigurasi workflow CI untuk pengujian otomatis dan workflow CD untuk deploy otomatis ke Heroku. Namun, Anda dapat menyesuaikan alur kerja ini untuk berbagai platform dan bahasa pemrograman sesuai dengan kebutuhan aplikasi Anda.

Dengan CI/CD yang diintegrasikan dengan GitHub Actions, Anda dapat fokus pada pengembangan fitur baru tanpa khawatir tentang integrasi atau deploy manual.

Posting Komentar untuk "Cara Mengintegrasikan CI/CD dengan GitHub Actions"