Lompat ke konten utama
CI/CD

Build dan release app otomatis dengan Github actions

Buat pipeline CI/CD sendiri secara gratis dengan Github actions, deploy app Ionic Capacitor JS Anda setiap kali push ke main.

Build dan release app otomatis dengan Github actions

Tutorial ini berfokus pada hosting GitHub, tetapi Anda dapat menyesuaikannya dengan sedikit modifikasi untuk platform CI/CD lainnya.

Pendahuluan

Pastikan Anda sudah menambahkan app Capacitor ke Capgo, tutorial ini hanya fokus pada fase upload. Jika Anda perlu menambahkan app ke Capgo, silakan ikuti ini Tutorial

Konvensi commit

Pertama, Anda perlu mulai mengikuti konvensi commit conventional commits` ini akan membantu tooling memahami cara upgrade nomor versi, hanya butuh 5 menit untuk mempelajarinya.

Conventional commits

GitHub actions untuk tag

Kemudian Anda perlu membuat GitHub action pertama untuk otomatis melakukan build dan membuat tag.

Buat file di path ini: .github/workflows/bump_version.yml

dengan isi berikut:

name: Bump version

on:
  push:
    branches:
      - main

jobs:
  bump-version:
    if: "!startsWith(github.event.head_commit.message, 'chore(release):')"
    runs-on: ubuntu-latest
    name: "Bump version and create changelog with standard version"
    steps:
      - name: Check out
        uses: actions/checkout@v6
        with:
          fetch-depth: 0
          filter: blob:none
          token: '${{ secrets.PERSONAL_ACCESS_TOKEN }}'
      - name: Git config
        run: |
          git config --local user.name "github-actions[bot]"
          git config --local user.email "github-actions[bot]@users.noreply.github.com"
      - name: Create bump and changelog
        run: npx capacitor-standard-version
      - name: Push to origin
        run: |
          CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD)
          remote_repo="https://${GITHUB_ACTOR}:${{ secrets.PERSONAL_ACCESS_TOKEN }}@github.com/${GITHUB_REPOSITORY}.git"
          git pull $remote_repo $CURRENT_BRANCH
          git push $remote_repo HEAD:$CURRENT_BRANCH --follow-tags --tags

Ini akan merilis tag untuk setiap commit di branch main Anda, serta menambahkan entri changelog untuk setiap commit di branch main ke dalam CHANGELOG.md.

Jangan khawatir kalau file ini belum ada, nanti dibuatkan untuk Anda.

Agar ini berfungsi, buatlah sebuah PERSONAL ACCESS TOKEN dan tambahkan ke GitHub Anda secrets sebagai PERSONAL_ACCESS_TOKEN.

Ini diperlukan agar CI bisa melakukan commit changelog.

Saat membuat token, pilih masa berlaku sebagai never dan scope sebagai repo.

Terakhir, atur versi di file package.json Anda, sinkronkan dengan nomor versi Native agar langkah berikutnya lebih mudah.

Ini hanya perlu dilakukan sekali, setelah itu tools akan menjaganya tetap up to date.

Sekarang Anda bisa commit kedua file ini dan lihat tag pertama Anda muncul di GitHub!

Platform native maupun web akan mengalami kenaikan nomor versi setelah setiap commit.

GitHub actions untuk build

Buat file di path ini: .github/workflows/build.yml

dengan isi berikut:

name: Build source code and send to Capgo

on:
  push:
    tags:
      - '*'
      
jobs:
  deploy:
    runs-on: ubuntu-latest
    name: "Build code and release"
    steps:
      - name: Check out
        uses: actions/checkout@v6
      - name: Install dependencies
        id: install_code
        run: npm i
      - name: Build
        id: build_code
        run: npm run build
        env: # Remove both lines  if you don't need it
          FIREBASE_CONFIG: ${{ secrets.FIREBASE_CONFIG }} # Example of env var coming from a secret
      - name: Create Release
        id: create_release
        run: npx @capgo/cli@latest bundle upload -a ${{ secrets.CAPGO_TOKEN }} -c production

Ini akan menginstal dan mem-build dependency Anda sebelum dikirim ke Capgo.

Jika perintah build Anda berbeda, Anda dapat mengubahnya di bagian build_code step.

Agar ini berfungsi, Anda perlu mengambil key API untuk Capgo, lalu menambahkannya ke secret di repository GitHub Anda sebagai CAPGO_TOKEN.

Sekarang Anda bisa commit kedua file ini dan lihat tag pertama Anda muncul di GitHub!

Menambahkan commit akan men-generate build baru untuk production channel.

Anda sebaiknya menambahkan pengujian pada langkah build untuk memastikan code Anda berfungsi dengan baik.

Buka dashboard Capgo Anda dan cek build yang baru muncul; sekarang Anda sudah punya sistem CI/CD.

Jika ingin semua user mendapatkan update secara otomatis, buka channel Anda dan atur ke public.

Anda juga bisa menambahkan Native Build dari aplikasi Ionic Capacitor JavaScript Anda dengan mengikuti tutorial ini 👇

Lanjutkan dari Automatic build and release app dengan Github actions

Jika Anda menggunakan Automatic build and release app dengan Github actions untuk merencanakan otomatisasi CI/CD, hubungkan dengan CI/CD Capgo untuk alur kerja produk di Capgo CI/CD, Capgo Native Build untuk alur kerja produk di Capgo Native Builds, Integrasi Capgo untuk alur kerja produk di Integrasi Capgo, Integrasi CI/CD untuk detail implementasi di Integrasi CI/CD, dan Integrasi GitHub Actions untuk detail implementasi di Integrasi GitHub Actions.

Live update untuk aplikasi Capacitor

Saat bug di web layer sudah live, kirim perbaikannya lewat Capgo alih-alih menunggu berhari-hari untuk persetujuan app store. Pengguna menerima update di background, sementara perubahan native tetap di jalur review normal.

Terbaru dari Blog kami

Capgo memberikan insight terbaik yang Anda butuhkan untuk membuat aplikasi mobile yang benar-benar profesional.