Lompat ke konten

Integrasi CI/CD

Integrasi Capgo ke dalam pipeline CI/CD Anda memungkinkan Anda untuk otomatisasi sepenuhnya proses pembangunan dan pengiriman update ke aplikasi Anda. Dengan memanfaatkan Capgo CLI dan semantic-release, Anda dapat memastikan pengiriman yang konsisten, dapat diandalkan, dan memungkinkan iterasi cepat.

  • Otomatisasi: Tidak ada lagi langkah-langkah manual atau ruang untuk kesalahan manusia. Proses pembangunan, pengujian, dan pengiriman Anda dapat diotomatisasi dari awal hingga akhir.

  • Konsistensi: Setiap pengiriman mengikuti langkah-langkah yang sama, sehingga proses yang dapat diprediksi dan dapat diulang. Hal ini sangat berharga ketika Anda memiliki beberapa anggota tim yang berkontribusi code.

  • Iterasi Cepat : Dengan pengiriman otomatis, Anda dapat mengirimkan pembaruan lebih sering dan dengan percaya diri. Tidak perlu menunggu QA manual atau persetujuan rilis.

Capgo CLI adalah kunci untuk mengintegrasikan Capgo ke dalam alur kerja CI/CD Anda. Ini menyediakan perintah untuk mengirimkan versi bundle baru, mengelola saluran, dan lain-lain.

Perintah paling penting untuk integrasi CI/CD adalah bundle upload:

Jendela Terminal
npx @capgo/cli@latest bundle upload --channel Production --apikey YOUR_API_KEY

Jika Anda menggunakan enkripsi, Anda harus menyediakannya dari salah satu cara berikut:

Menggunakan jalur file kunci pribadi:

Jendela Terminal
npx @capgo/cli@latest bundle upload --channel Production --apikey YOUR_API_KEY --key-v2 PRIVATE_KEY_PATH

Menggunakan konten kunci pribadi secara langsung (direkomendasikan untuk CI/CD):

Jendela terminal
npx @capgo/cli@latest bundle upload --channel Production --apikey YOUR_API_KEY --key-data-v2 PRIVATE_KEY_CONTENT

Menggunakan variabel lingkungan (praktik terbaik untuk CI/CD):

Jendela terminal
npx @capgo/cli@latest bundle upload --channel Production --apikey YOUR_API_KEY --key-data-v2 "$CAPGO_PRIVATE_KEY"

Mengatur Variabel Lingkungan untuk Pengenkripsi

Bab berjudul “Mengatur Variabel Lingkungan untuk Pengenkripsi”

Untuk lingkungan CI/CD, disarankan untuk menyimpan kunci pribadi sebagai variabel lingkungan daripada file. Berikut cara mengaturinya:

  1. Ambil konten kunci pribadi Anda:

    Jendela terminal
    cat .capgo_key_v2 | pbcopy

    Konten kunci ini telah disalin ke clipboard.

  2. Tambahkan ke lingkungan CI/CD Anda:

    • GitHub Aksi: Tambahkan CAPGO_PRIVATE_KEY ke rahasia repository Anda
    • GitLab CI: Tambahkan sebagai variabel tersembunyi di pengaturan proyek Anda
    • CircleCI: Tambahkan sebagai variabel lingkungan di pengaturan proyek Anda
    • Jenkins: Tambahkan sebagai kredit teks rahasia
  3. Pakailah di dalam pipeline Anda:

    - run: npx @capgo/cli@latest bundle upload --channel=production --apikey=${{ secrets.CAPGO_API_KEY }} --key-data-v2 "${{ secrets.CAPGO_PRIVATE_KEY }}"

Perlu diingat: Flag ini memungkinkan Anda untuk memasukkan konten kunci pribadi secara langsung sebagai string, sehingga sangat cocok untuk variabel lingkungan di pipeline CI/CD di mana Anda tidak ingin membuat file sementara. --key-data-v2 Perintah ini mengunggah build web saat ini ke saluran yang ditentukan. Anda biasanya menjalankan perintah ini sebagai langkah terakhir di pipeline CI/CD Anda, setelah build web Anda telah selesai dengan sukses.

Mengatur __CAPGO_KEEP_0__ di Pipeline CI/CD Anda

Menghasilkan kunci Capgo

  1. : Masuk ke dashboard API dan buat kunci __CAPGO_KEEP_1__ baru. Kunci ini akan digunakan untuk mengautentikasi __CAPGO_KEEP_2__ di lingkungan CI/CD Anda. Simpanlah rahasia dan jangan pernah mengkomitnya ke repository Anda!: Log in to the Capgo dashboard and create a new API key. This key will be used to authenticate the CLI in your CI/CD environment. Keep it secret and never commit it to your repository!

  2. perintah bundle upload : Tambahkan langkah ke konfigurasi CI/CD Anda yang menjalankan__CAPGO_KEEP_0__ bundle upload perintah dengan argumen yang tepat:

    upload.yml
    - run: npx @capgo/cli@latest bundle upload --channel=production --apikey=${{ secrets.CAPGO_API_KEY }}
    \n Ganti Production dengan saluran yang ingin Anda buat, dan tambahkan ${{ secrets.CAPGO_API_KEY }} dengan variabel lingkungan yang menyimpan kunci API Anda, dan tambahkan --key-data-v2 "${{ secrets.CAPGO_PRIVATE_KEY }}" jika menggunakan enkripsi.

  3. Tambahkan upload langkah setelah pembangunan web Anda: Pastikan upload langkah ini datang setelah pembangunan web Anda telah selesai dengan sukses. Hal ini memastikan Anda selalu mengirimkan code terbaru Anda.\n Berikut adalah contoh konfigurasi untuk GitHub Actions:\n

    upload.yml
    name: Deploy to Capgo
    on:
    push:
    branches: [main]
    jobs:
    deploy:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v6
    - uses: actions/setup-node@v6
    with:
    node-version: '24'
    - run: npm ci
    - run: npm run build
    - run: npm install -g @capgo/cli
    - run: npx @capgo/cli@latest bundle upload --channel=production --apikey=${{ secrets.CAPGO_API_KEY }} --key-data-v2 "${{ secrets.CAPGO_PRIVATE_KEY }}"

Pengelolaan Versi dengan Semantic-release

Bab berjudul “Pengelolaan Versi dengan Semantic-release”

Cara yang disarankan untuk mengelola versi dengan Capgo adalah dengan mengatur versi di file Anda dengan mengimportnya dari capacitor.config.ts Cara yang disarankan untuk mengelola versi dengan __CAPGO_KEEP_0__ adalah dengan mengatur versi di file Anda dengan mengimportnya dari package.json:

import pkg from './package.json'
const config: CapacitorConfig = {
// ... other config
plugins: {
CapacitorUpdater: {
version: pkg.version,
}
}
}

Menggunakan semantic-release (atau alat lainnya) untuk memperbarui versi

  1. Membangun aplikasi dengan versi yang diperbarui secara otomatis package.json Mengunggah bundle dengan versi yang tepat
  2. Alur kerja CI/CD Anda akan seperti ini:
  3. __CAPGO_KEEP_0__

__CAPGO_KEEP_0__

- run: npm ci
- run: npx semantic-release # Updates package.json version
- run: npm run build # Builds with new version from capacitor.config
- run: npx @capgo/cli@latest bundle upload --channel=production --apikey=${{ secrets.CAPGO_API_KEY }}

Berikut adalah contoh .releaserc file konfigurasi untuk semantic-release:

{
"branches": [
"main",
{
"name": "beta",
"prerelease": true
}
],
"plugins": [
"@semantic-release/commit-analyzer",
"@semantic-release/release-notes-generator",
"@semantic-release/changelog",
[
"@semantic-release/git",
{
"assets": ["CHANGELOG.md", "package.json"],
"message": "chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"
}
]
]
}

Konfigurasi ini melakukan hal-hal berikut:

  1. Menganalisis pesan komit untuk menentukan nomor versi berikutnya, mengikuti spesifikasi Conventional Commits.
  2. Menghasilkan catatan rilis berdasarkan komit sejak rilis terakhir.
  3. Mengupdate CHANGELOG.md file dengan catatan rilis baru.
  4. Mengupdate package.json versi, yang akan diambil oleh konfigurasi capacitor Anda.
  5. Mengkomitkan file yang telah diperbarui CHANGELOG.md, package.jsondan file lainnya yang berubah kembali ke repository.

Pastikan menjalankan semantic-release sebelum membangun aplikasi Anda agar versi yang diperbarui dari package.json Termasuk dalam pembangunan melalui capacitor.config.

Auto-bump ketika versi lokal sudah pada Capgo

Judul Bagian “Auto-bump ketika versi lokal sudah pada Capgo”

Nama paket harus unik (versi yang dihapus masih mengisi nama). Jika CI terus mengunggah versi yang sama, unggahan gagal. Lebih baik melakukan bump package.json (misalnya dengan semantic-release). Ketika itu tidak praktis, biarkan __CAPGO_KEEP_0__ memilih versi semver gratis berikutnya dari kanal yang terkait paket, atau versi aplikasi remote terakhir: package.json (for example with semantic-release). When that is not practical, let the CLI pick the next free semver from the channel’s linked bundle, or else the latest remote app version:

Salin ke clipboard
npx @capgo/cli@latest bundle upload --channel=production --auto-bump
npx @capgo/cli@latest bundle upload --auto-bump major
npx @capgo/cli@latest bundle upload --auto-bump minor # default when the flag has no value
npx @capgo/cli@latest bundle upload --auto-bump patch # alias: fix
npx @capgo/cli@latest bundle upload --auto-bump metadata
npx @capgo/cli@latest bundle upload --channel=production --auto-bump ai

--auto-bump ai uses Capgo Cloudflare Workers AI to compare local bundle files against the previous Capgo/channel delta manifest, pick major | minor | patch | metadata, and print a short reason. With no previous Capgo version, AI is skipped and the bump is patch.

Tidak kombinasikan --auto-bump dengan --bundle / -b. Lihat referensi bundle upload untuk daftar opsi lengkap. Pengaturan

context: Halaman/area: Bantuan / bagian bantuan premium atau bagian bawah halaman bantuan. Peran: Judul bagian atau halaman. Dilihat di: halaman support-policy.astro. Kunci pesan `support_policy_troubleshooting_title` (Judul Pengaturan Bantuan)

Judul bagian ‘Pengaturan’

Jika Anda mengalami masalah dengan integrasi CI/CD Anda Capgo, berikut beberapa hal yang perlu Anda periksa:

  • API kunci: Pastikan kunci API Anda valid dan memiliki izin yang diperlukan. Jika menggunakan variabel lingkungan, pastikan sudah ditetapkan dengan benar.

  • CLI versi: Pastikan Anda menggunakan versi terbaru dari Capgo CLI. Versi yang lebih tua mungkin memiliki masalah kompatibilitas atau kekurangan fitur tertentu.

  • Artikel Pembangunan: Pastikan build web Anda menghasilkan file keluaran yang diharapkan. Capgo CLI membutuhkan build web yang valid untuk membuat bundle.

  • Koneksi Jaringan: Periksa apakah lingkungan CI/CD Anda memiliki akses jaringan ke server Capgo. Masalah firewall atau proxy dapat mengganggu proses ini. upload : Jika Anda masih mengalami masalah, hubungi __CAPGO_KEEP_0__ untuk mendapatkan bantuan. Mereka dapat membantu menyelesaikan masalah dengan konfigurasi spesifik Anda.

If you’re still having trouble, reach out to Capgo support for assistance. They can help troubleshoot any issues with your specific setup.

Integrating Capgo into your CI/CD pipeline with proper version management can greatly streamline your development workflow. By automating your deployments and versioning through the capacitor.config approach, you can ship updates faster and with more confidence.

file dan menggunakan semantic-release untuk mengupdate capacitor.config.ts __CAPGO_KEEP_0__ package.json menawarkan proses pengiriman yang kuat dan dapat diandalkan yang memungkinkan Anda fokus pada pembangunan fitur-fitur yang bagus daripada khawatir tentang langkah-langkah rilis manual.

For informasi lebih lanjut tentang perintah dan pilihan Capgo CLI , silakan cek referensi CLI . Dan untuk memahami lebih dalam tentang konfigurasi semantic-release, lihat docs semantic-release .

Selamat mengirim!

Jika Anda menggunakan Integrasi CI/CD context Capgo CI/CD untuk alur kerja produk dalam Capgo CI/CD, Capgo Pembangunan Nativ untuk alur kerja produk dalam Capgo Pembangunan Nativ Capgo Integrasi for the product workflow in Capgo Integrations, untuk alur kerja produk dalam GitHub Integrasi GitHub Integrasi Aksi untuk detail implementasi dalam __CAPGO_KEEP_0__ Integrasi Aksi, dan Integrasi CI/CD GitLab