Langsung ke konten utama
CI/CD

Kelola build development dan production dengan GitHub actions

Gunakan Capgo untuk merilis devbuild ke channel tertentu, dan biarkan tim Anda mencoba aplikasi Ionic Capacitor Anda, tanpa menunggu review dari Apple dan Google

Kelola build development dan production dengan GitHub actions Capgo ilustrasi blog

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

Kata Pengantar

Pastikan Anda sudah menambahkan aplikasi Capacitor Anda ke Capgo terlebih dahulu; tutorial ini hanya berfokus pada fase upload

Konvensi commit

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

Conventional commits

GitHub actions untuk tag

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

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

dengan isi berikut:

name: Bump version

on:
  push:
    branches:
      - main
      - development

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
        if: github.ref == 'refs/heads/main'
        run: npx capacitor-standard-version
      - name: Create bump and changelog
        if: github.ref != 'refs/heads/main'
        run: npx capacitor-standard-version --prerelease alpha
      - 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. Dan sebuah alpha rilis untuk development, dan terakhir entri changelog untuk setiap commit di CHANGELOG.md.

Jangan khawatir jika Anda belum punya file ini, file akan dibuat untuk Anda.

Untuk membuatnya berfungsi, Anda perlu membuat PERSONAL ACCESS TOKEN dan menambahkannya ke GitHub Anda secrets sebagai PERSONAL_ACCESS_TOKEN.

Hal ini diperlukan agar CI dapat melakukan commit changelog dan peningkatan versi.

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

Atur version key di dalam package.json file Anda. Untuk itu, gunakan versi terakhir yang dirilis di toko aplikasi.

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

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

capacitor-standard-version adalah package yang melakukan keajaiban; secara default, ia juga memperbarui nomor versi Anda di Android dan iOS

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 build
        env:
          MY_ENV_VAR: ${{ secrets.MY_ENV_VAR }}
      - name: Create Release Alpha
        if: "contains(github.ref, '-alpha.')"
        id: create_release_prepro
        run: npx @capgo/cli@latest bundle upload -a ${{ secrets.CAPGO_TOKEN }} -c development
      - name: Create Release Production
        if: "!contains(github.ref, '-alpha.')"
        id: create_release_prod
        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 bisa mengubahnya di build_code langkah.

Jika Anda membutuhkan variabel lingkungan, gunakan MY_ENV_VAR dan atur secret di pengaturan proyek GitHub Anda, lalu secret, lalu GitHub Action.

Agar Capgo upload berfungsi, Anda perlu mendapatkan API key untuk Capgo, tambahkan di secret dari repositori GitHub Anda sebagai CAPGO_TOKEN.

Anda sekarang bisa commit kedua file ini dan melihat versi pertama Anda muncul di Capgo!

Menambahkan commit akan menghasilkan Capacitor build baru untuk channel produksi dan pengembangan.

Tambahkan test Anda di langkah build Ionic untuk memastikan code berfungsi.

Buka dashboard Capgo Anda dan periksa build yang baru saja muncul, sekarang Anda sudah memiliki sistem CI/CD.

Lanjutkan dari Mengelola build development dan production dengan GitHub actions

Jika Anda menggunakan Kelola build development dan production dengan GitHub actions untuk merencanakan routing channel dan staged rollout, hubungkan dengan Channel untuk detail implementasi di Channels, Channel untuk detail implementasi di Channels, Channel untuk detail implementasi di Channels, Solusi Beta Testing untuk workflow produk di Solusi Beta Testing, dan Solusi Version Targeting untuk workflow produk di Version Targeting Solution.

Live updates untuk aplikasi Capacitor

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

Terbaru dari Blog kami

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