Integrasi CI/CD
Salin prompt pengaturan dengan langkah instalasi dan panduan markdown lengkap untuk plugin ini.
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.
Manfaat Integrasi CI/CD
Judul Bagian: Manfaat Integrasi CI/CD-
Otomatisasi: Tidak perlu lagi langkah-langkah manual atau 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. Ini sangat berharga ketika Anda memiliki beberapa anggota tim yang berkontribusi code.
-
Iterasi yang lebih cepat: Dengan pengiriman otomatis, Anda dapat mengirimkan update lebih sering dan dengan percaya diri. Tidak perlu lagi menunggu QA manual atau persetujuan rilis.
Capgo CLI
Judul Bagian: Capgo CLICapgo CLI adalah kunci untuk mengintegrasikan Capgo ke dalam alur kerja CI/CD Anda. Fitur ini menyediakan perintah untuk mengirimkan versi bundle baru, mengelola channel, dan lain-lain.
Perintah yang paling penting untuk integrasi CI/CD adalah bundle upload:
npx @capgo/cli@latest bundle upload --channel Production --apikey YOUR_API_KEYJika Anda menggunakan enkripsi, Anda harus menyediakan kunci pribadi dari salah satu cara berikut:
Menggunakan jalur file kunci pribadi:
npx @capgo/cli@latest bundle upload --channel Production --apikey YOUR_API_KEY --key-v2 PRIVATE_KEY_PATHMenggunakan konten kunci pribadi secara langsung (direkomendasikan untuk CI/CD):
npx @capgo/cli@latest bundle upload --channel Production --apikey YOUR_API_KEY --key-data-v2 PRIVATE_KEY_CONTENTMenggunakan variabel lingkungan (praktik terbaik untuk CI/CD):
npx @capgo/cli@latest bundle upload --channel Production --apikey YOUR_API_KEY --key-data-v2 "$CAPGO_PRIVATE_KEY"Bab berjudul “Mengatur Variabel Lingkungan untuk Pengenkripsi”
Mengatur Variabel Lingkungan untuk PengenkripsiFor CI/CD environments, it’s recommended to store your private key as an environment variable rather than a file. Here’s how to set it up:
-
Ini menyalin konten kunci ke clipboard Anda.
Mengatur Variabel Lingkungan untuk Pengenkripsi cat .capgo_key_v2 | pbcopyTambahkannya ke lingkungan CI/CD Anda:
-
Tambahkan ke lingkungan CI/CD Anda:
- Aksi GitHub: Tambahkan
CAPGO_PRIVATE_KEYke rahasiaan repositori 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
- Aksi GitHub: Tambahkan
-
Pakailah di pipeline Anda:
- run: npx @capgo/cli@latest bundle upload --channel=production --apikey=${{ secrets.CAPGO_API_KEY }} --key-data-v2 "${{ secrets.CAPGO_PRIVATE_KEY }}"
Catatan: The --key-data-v2 Ini perintah untuk 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.
This command uploads the current web build to the specified channel. You’ll typically run this as the last step in your CI/CD pipeline, after your web build has completed successfully.
Judul bagian ‘Menyiapkan Capgo di Pipeline CI/CD Anda’
Section titled “Setting up Capgo in your CI/CD Pipeline”Sementara langkah-langkah yang tepat akan berbeda-beda tergantung pada alat CI/CD yang Anda pilih, proses umum untuk mengintegrasikan Capgo seperti ini:
-
Buatlah kunci API: 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!
-
Konfigurasi
bundle uploadcommandTambahkan langkah ke konfigurasi CI/CD Anda untuk menjalankanbundle uploadperintah dengan argumen yang sesuai:Gantifile upload.yml - run: npx @capgo/cli@latest bundle upload --channel=production --apikey=${{ secrets.CAPGO_API_KEY }}Productiondengan saluran yang ingin Anda buat,${{ secrets.CAPGO_API_KEY }}dengan variabel lingkungan yang menyimpan kunci API Anda, dan tambahkan--key-data-v2 "${{ secrets.CAPGO_PRIVATE_KEY }}"jika menggunakan enkripsi. -
Tambahkan
uploadlangkah setelah build web AndaPastikan bahwauploadlangkah ini datang setelah build web Anda selesai dengan sukses. Hal ini memastikan Anda selalu mengirimkan code terbaru Anda. Berikut adalah contoh konfigurasi untuk GitHub Actions:file upload.yml name: Deploy to Capgoon:push:branches: [main]jobs:deploy:runs-on: ubuntu-lateststeps:- uses: actions/checkout@v6- uses: actions/setup-node@v6with: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 }}"
Manajemen Versi dengan Semantic-release
Judul Bagian “Manajemen Versi dengan Semantic-release”Cara yang disarankan untuk mengelola versi dengan Capgo adalah dengan menyetel versi di dalam proyek Anda. capacitor.config.ts Salin ke clipboard 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
- Membangun aplikasi dengan versi yang diperbarui secara otomatis
package.jsonversion - Bangun aplikasi Anda dengan versi yang diperbarui secara otomatis diintegrasikan
- Alur kerja CI/CD Anda akan seperti ini:
Alur kerja CI/CD Anda akan seperti ini:
- 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 contoh .releaserc konfigurasi file 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}" } ] ]}Ini konfigurasi yang melakukan hal berikut:
- Menganalisis pesan komit untuk menentukan nomor versi berikutnya, mengikuti spesifikasi Conventional Commits.
- Menghasilkan catatan rilis berdasarkan komit sejak rilis terakhir.
- Mengupdate
CHANGELOG.mdfile dengan catatan rilis baru. - Mengupdate
package.jsonNomor versi, yang akan diambil oleh konfigurasi capacitor Anda. - Mengkomitkan file yang telah diperbarui,
CHANGELOG.md,package.jsonserta file lain yang telah 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 mengambil nama mereka). Jika CI terus mengunggah nama yang sama package.json versi, maka proses upload gagal. Lebih baik melakukan bumping 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:
npx @capgo/cli@latest bundle upload --channel=production --auto-bumpnpx @capgo/cli@latest bundle upload --auto-bump majornpx @capgo/cli@latest bundle upload --auto-bump minor # default when the flag has no valuenpx @capgo/cli@latest bundle upload --auto-bump patch # alias: fixnpx @capgo/cli@latest bundle upload --auto-bump metadatanpx @capgo/cli@latest bundle upload --channel=production --auto-bump ai--auto-bump ai gunakan Capgo Cloudflare AI Workers untuk membandingkan file bundle lokal dengan file delta kanal sebelumnya Capgo major | minor | patch | metadataDengan tidak ada versi sebelumnya Capgo, pembaruan dilakukan secara manual dan tidak melibatkan AI. patch.
Jangan kombinasikan --auto-bump dengan --bundle / -b. Lihat referensi bundle upload reference untuk daftar pilihan lengkap.
Troubleshooting
Bagian berjudul “Dukungan”Jika Anda mengalami masalah dengan integrasi CI/CD Anda Capgo, berikut beberapa hal yang perlu Anda periksa:
-
API kunciPastikan kunci API Anda valid dan memiliki izin yang diperlukan. Jika menggunakan variabel lingkungan, pastikan sudah diatur dengan benar.
-
CLI versi: Pastikan Anda menggunakan versi terbaru dari Capgo CLI. Versi lama mungkin memiliki masalah kompatibilitas atau kekurangan fitur tertentu.
-
Artikel yang dibangun: Pastikan bahwa pembangunan web Anda menghasilkan file keluaran yang diharapkan. Capgo CLI membutuhkan pembangunan web yang valid untuk membuat bundle.
-
Koneksi jaringan: Periksa bahwa lingkungan CI/CD Anda memiliki akses ke server Capgo. Masalah firewall atau proxy dapat mengganggu koneksi ke
uploadperintah.
Jika Anda masih mengalami masalah, hubungi Capgo untuk mendapatkan bantuan. Mereka dapat membantu menyelesaikan masalah dengan konfigurasi spesifik Anda.
Kesimpulan
Judul bagian ‘Kesimpulan’Integrasi Capgo ke dalam pipeline CI/CD Anda dengan pengelolaan versi yang tepat dapat mempercepat alur kerja pengembangan Anda. Dengan otomatisasi pengiriman dan pengelolaan versi melalui pendekatan capacitor.config, Anda dapat mengirimkan pembaruan lebih cepat dan dengan lebih percaya diri.
Metode yang disarankan untuk mengatur versi di file capacitor.config.ts dan menggunakan semantic-release untuk memperbarui package.json menyediakan proses pengiriman yang kuat dan dapat diandalkan yang memungkinkan Anda fokus pada pembangunan fitur yang bagus daripada khawatir tentang langkah-langkah rilis manual.
Untuk informasi lebih lanjut tentang perintah dan opsi Capgo CLI, silakan cek Referensi CLI. Dan untuk memahami lebih dalam tentang konfigurasi semantic-release, lihat docs semantic-release.
Selamat mengembangkan!
Teruskan dari Integrasi CI/CD
Judul bagian “Teruskan dari Integrasi CI/CD”Jika Anda menggunakan Integrasi CI/CD Untuk merencanakan otomatisasi CI/CD, hubungkannya dengan Capgo CI/CD Capgo CI/CD untuk alur kerja produk di Capgo CI/CD, Capgo Pembangunan Nadiif untuk alur kerja produk di Capgo Pembangunan Nadiif Capgo Integrasi untuk alur kerja produk dalam Integrasi Capgo untuk alur kerja produk di GitHub Integrasi untuk detail implementasi di GitHub Integrasi Aksi untuk detail implementasi di __CAPGO_KEEP_0__ Aksi Integrasi, dan Untuk detail implementasi di Integrasi CI/CD GitLab.