Langsung ke konten utama
CI/CD

Build dan release otomatis dengan Gitlab

Buat pipeline CI/CD sendiri dengan GitLab secara gratis, deploy aplikasi Anda setiap kali push ke main.

Automatic build dan release dengan Gitlab Capgo ilustrasi blog

Tutorial ini berfokus pada GitLab CI, tapi Anda bisa menyesuaikannya sedikit untuk platform CI/CD lainnya.

Kata Pengantar

Pastikan Anda sudah menambahkan aplikasi ke Capgo terlebih dahulu, tutorial ini hanya fokus 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

GitLab CI untuk tag

Lalu, Anda perlu membuat GitLab pertama Anda 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 jika Anda belum punya file ini, file akan dibuat untuk Anda.

Agar ini berfungsi, buatlah sebuah PERSONAL ACCESS TOKEN dan tambahkan ke variabel GitLab CI/CD Anda sebagai PERSONAL_ACCESS_TOKEN.

Ini diperlukan agar CI dapat melakukan commit pada changelog.

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

Terakhir, agar alat ini tahu di mana versi Anda disimpan, Anda harus membuat file tersebut .cz.toml di root repositori Anda.

Dan masukkan ini di dalamnya:

[tool.commitizen]
name = "cz_conventional_commits"
tag_format = "$major.$minor.$patch$prerelease"
version = "0.11.5"
version_files = [
    "package.json:version",
    ".cz.toml"
]

Atur versi di file ini agar sama dengan yang ada di package.json Anda.

Ini hanya perlu dilakukan sekali di awal, setelah itu alat akan terus memperbaruinya secara otomatis.

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

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 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 test pada build step untuk memastikan code Anda berjalan lancar.

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

Jika ingin semua user mendapatkan update segera setelah tersedia, buka channel Anda dan atur ke public.

Lanjutkan dari Automatic build and release with Gitlab

Jika Anda menggunakan Build dan release otomatis dengan Gitlab untuk merencanakan otomatisasi CI/CD, hubungkan dengan CI/CD Capgo untuk workflow produk di Capgo CI/CD, Capgo Native Build untuk workflow 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 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.