GitHub Integrasi Aksi
Salin prompt pengaturan dengan langkah instalasi dan panduan markdown lengkap untuk plugin ini.
Integrasikan Capgo Pembaruan Langsung dengan GitHub Aksi untuk memperbarui otomatis aplikasi Anda setiap kali Anda mendorong code perubahan. Petunjuk ini mencakup pengaturan build otomatis, pengujian, dan alur kerja pengiriman menggunakan platform CI/CD kuat GitHub.
Prasyarat
Bab berjudul “Prasyarat”Sebelum mengatur integrasi GitHub Aksi, pastikan Anda memiliki:
- Repositori GitHub dengan sumber code aplikasi Anda
- Akun Capgo dengan aplikasi yang dikonfigurasi
- Node.js dan npm/yarn dikonfigurasi di proyek Anda
- GitHub Aksi diaktifkan untuk repositori Anda
Mengatur GitHub Rahasia
Judul Bagian “Mengatur GitHub Rahasia”Langkah 1: Konfigurasi Rahasia Repositori
Judul Bagian “Langkah 1: Konfigurasi Rahasia Repositori”Atur rahasia yang diperlukan di repositori GitHub Anda:
- Navigasikan ke repositori GitHub Anda
- Ke Pengaturan → Rahasia dan variabel → Aksi
- Klik Rahasia baru repositori dan tambahkan hal berikut:
| Nama Rahasia | Nilai |
|---|---|
CAPGO_TOKEN | Token Anda Capgo API |
Bagian berjudul “Pengaturan Deploymen Produksi Sederhana”
Pengaturan Deploymen Produksi SederhanaMulai dengan konfigurasi dasar ini yang meng-deploy ke produksi setiap kali push ke cabang utama:
# Simple GitHub Actions Workflow for Capgo Live Updatesname: Deploy to Capgo
on: push: branches: - main
jobs: deploy: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v6
- name: Setup Node.js uses: actions/setup-node@v6 with: node-version: '24' cache: 'npm'
- name: Install, test and build run: | npm ci npm run test npm run build
- name: Deploy to Capgo run: | npm install -g @capgo/cli npx @capgo/cli bundle upload --channel production env: CAPGO_TOKEN: ${{ secrets.CAPGO_TOKEN }} # For encrypted uploads, add: --key-data-v2 "${{ secrets.CAPGO_PRIVATE_KEY }}"Konfigurasi Multi-Kanal Lanjutan
Bab berjudul “Konfigurasi Multi-Kanal Lanjutan”Pengiriman Cabang Fitur
Bab berjudul “Pengiriman Cabang Fitur”Kirimkan cabang fitur ke saluran sementara untuk tes:
# Feature branch deploymentname: Deploy Feature Branch to Capgo
on: push: branches: - 'feature/**'
jobs: deploy-feature: runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 - uses: actions/setup-node@v6 with: node-version: '24' cache: 'npm'
- run: | npm ci npm run test npm run build
- name: Deploy to feature channel run: | CHANNEL_NAME=$(echo "${{ github.ref_name }}" | sed 's/[^a-zA-Z0-9]/-/g' | tr '[:upper:]' '[:lower:]') npm install -g @capgo/cli npx @capgo/cli channel create $CHANNEL_NAME --apikey ${{ secrets.CAPGO_TOKEN }} || true npx @capgo/cli bundle upload --apikey ${{ secrets.CAPGO_TOKEN }} --channel $CHANNEL_NAMEMenggunakan Enkripsi
Bab berjudul “Menggunakan Enkripsi”Jika Anda menggunakan Capgo’s fitur enkripsiUntuk menyimpan kunci pribadi Anda secara aman, simpan di lingkungan CI/CD Anda.
Setelah mengatur kunci enkripsi secara lokal, tambahkan kunci pribadi Anda ke __CAPGO_KEEP_0__ rahasia: locally, add your private key to GitHub secrets:
# Display your private key content (copy this output)cat .capgo_key_v2dalam repositori rahasia __CAPGO_KEEP_0__ Anda, lalu gunakan di alur kerja: CAPGO_PRIVATE_KEY in your GitHub repository secrets, then use it in workflows:
# Deploy with encryption- name: Deploy to Capgo with Encryption run: | npm install -g @capgo/cli npx @capgo/cli bundle upload --apikey ${{ secrets.CAPGO_TOKEN }} --key-data-v2 "${{ secrets.CAPGO_PRIVATE_KEY }}" --channel productionKonfigurasi Multi-Kanal
Bagian berjudul “Konfigurasi Multi-Kanal”Untuk informasi yang lebih komprehensif tentang mengatur dan mengelola beberapa saluran pengiriman, lihat dokumentasi Dokumentasi Saluran.
Alur kerja lengkap dengan pengembangan, permintaan pull, dan pengiriman produksi:
# Complete multi-environment workflowname: Deploy to Capgo
on: push: branches: [main, develop] pull_request: branches: [main, develop]
jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 - uses: actions/setup-node@v6 with: node-version: '24' cache: 'npm'
- run: | npm ci npm run test npm run build
- uses: actions/upload-artifact@v6 with: name: dist path: dist/
deploy-development: if: github.ref == 'refs/heads/develop' needs: build runs-on: ubuntu-latest environment: development steps: - uses: actions/setup-node@v6 with: node-version: '24'
- uses: actions/download-artifact@v4 with: name: dist path: dist/
- run: | npm install -g @capgo/cli npx @capgo/cli bundle upload --apikey ${{ secrets.CAPGO_TOKEN }} --channel development
deploy-pr: if: github.event_name == 'pull_request' needs: build runs-on: ubuntu-latest steps: - uses: actions/setup-node@v6 with: node-version: '24'
- uses: actions/download-artifact@v4 with: name: dist path: dist/
- name: Deploy to PR channel run: | CHANNEL_NAME="pr-${{ github.event.number }}" npm install -g @capgo/cli npx @capgo/cli channel create $CHANNEL_NAME --apikey ${{ secrets.CAPGO_TOKEN }} || true npx @capgo/cli bundle upload --apikey ${{ secrets.CAPGO_TOKEN }} --channel $CHANNEL_NAME
- name: Comment PR uses: actions/github-script@v7 with: script: | github.rest.issues.createComment({ issue_number: context.issue.number, owner: context.repo.owner, repo: context.repo.repo, body: `🚀 This PR has been deployed to Capgo channel: \`pr-${{ github.event.number }}\`\n\nTo test this update in your app, configure it to use this channel. [Learn how to configure channels →](/docs/live-updates/channels/#configuring-the-channel-in-your-app)` })
deploy-production: if: github.ref == 'refs/heads/main' needs: build runs-on: ubuntu-latest environment: production steps: - uses: actions/setup-node@v6 with: node-version: '24'
- uses: actions/download-artifact@v4 with: name: dist path: dist/
- run: | npm install -g @capgo/cli npx @capgo/cli bundle upload --apikey ${{ secrets.CAPGO_TOKEN }} --channel productionMembersihkan Saluran Fitur
Judul Bagian “Membersihkan Saluran Fitur”Membersihkan Otomatis Saluran Fitur Ketika Cabang Dihapus:
name: Cleanup Feature Channels
on: delete:
jobs: cleanup: runs-on: ubuntu-latest if: github.event.ref_type == 'branch' && startsWith(github.event.ref, 'feature/') steps: - uses: actions/setup-node@v6 with: node-version: '24'
- name: Delete Capgo channel run: | CHANNEL_NAME=$(echo "${{ github.event.ref }}" | sed 's/[^a-zA-Z0-9]/-/g' | tr '[:upper:]' '[:lower:]') npm install -g @capgo/cli npx @capgo/cli channel delete $CHANNEL_NAME --apikey ${{ secrets.CAPGO_TOKEN }} || trueKeamanan dan Praktik Terbaik
Judul Bagian “Keamanan dan Praktik Terbaik”Aturan Perlindungan Lingkungan
Judul Bagian “Aturan Perlindungan Lingkungan”Atur aturan perlindungan lingkungan di GitHub:
- Pergi ke Pengaturan → Lingkungan di repositori Anda
- Buat lingkungan:
development,staging,production - Untuk lingkungan produksi, tambahkan:
- Reviewer yang Wajib: Tambahkan anggota tim yang harus menyetujui pengiriman
- Penunggu: Tambahkan jeda sebelum pengiriman (opsional)
- Cabang Pengiriman: Batasi ke
mainbranch hanya
Pengelolaan Rahasia yang Aman
Judul Bagian “Pengelolaan Rahasia yang Aman”Gunakan rahasia yang spesifik untuk lingkungan:
# Use different secrets per environmentdeploy-production: environment: production steps: - name: Deploy to Production run: | npx @capgo/cli bundle upload \ --apikey ${{ secrets.CAPGO_PROD_TOKEN }} \ --app ${{ secrets.CAPGO_PROD_APP_ID }} \ --channel productionPengawasan dan Pemberitahuan
Judul Bagian “Pengawasan dan Pemberitahuan”Integrasi Slack
Judul Bagian “Integrasi Slack”Tambahkan pemberitahuan Slack ke alur kerja Anda:
name: Deploy with Notifications
jobs: deploy: runs-on: ubuntu-latest steps: # ... deployment steps
- name: Notify Slack on Success if: success() uses: 8398a7/action-slack@v3 with: status: success text: '✅ Capgo deployment successful!' fields: repo,message,commit,author,action,eventName,ref,workflow env: SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
- name: Notify Slack on Failure if: failure() uses: 8398a7/action-slack@v3 with: status: failure text: '❌ Capgo deployment failed!' fields: repo,message,commit,author,action,eventName,ref,workflow env: SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}Integrasi Discord
Bagian berjudul “Pengintegrasian Discord”Kirim notifikasi ke Discord:
- name: Discord notification if: always() uses: Ilshidur/action-discord@master with: args: | Capgo deployment ${{ job.status }}! App: ${{ secrets.CAPGO_APP_ID }} Channel: ${{ github.ref_name }} Commit: ${{ github.sha }} env: DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }}Pemberitahuan Email
Bagian berjudul “Pemberitahuan Email”Konfigurasi pemberitahuan email:
- name: Send email notification if: failure() uses: dawidd6/action-send-mail@v3 with: server_address: smtp.gmail.com server_port: 465 username: ${{ secrets.EMAIL_USERNAME }} password: ${{ secrets.EMAIL_PASSWORD }} subject: 'Capgo Deployment Failed - ${{ github.repository }}' to: team@yourcompany.com from: ci-cd@yourcompany.com body: | Deployment failed for ${{ github.repository }} Branch: ${{ github.ref_name }} Commit: ${{ github.sha }} Workflow: ${{ github.workflow }}Pengaturan Perbaikan
Bagian berjudul “Pengaturan Perbaikan”Alur Debug
Bagian berjudul “Alur Debug”Tambahkan langkah debug untuk memecahkan masalah:
- name: Debug environment run: | echo "Node version: $(node --version)" echo "NPM version: $(npm --version)" echo "Working directory: $(pwd)" echo "Files in dist/: $(ls -la dist/ || echo 'No dist directory')" echo "Environment variables:" env | grep -E "(GITHUB_|CAPGO_)" | sort
- name: Test Capgo CLI run: | npx @capgo/cli --version npx @capgo/cli app debug --apikey ${{ secrets.CAPGO_TOKEN }} --app ${{ secrets.CAPGO_APP_ID }}Masalah Umum dan Solusi
Judul Bagian “Masalah Umum dan Solusi”Alur kerja gagal dengan “CAPGO_TOKEN tidak ditemukan”:
- name: Verify secrets run: | if [ -z "${{ secrets.CAPGO_TOKEN }}" ]; then echo "ERROR: CAPGO_TOKEN secret is not set" exit 1 fi echo "CAPGO_TOKEN is set (length: ${#CAPGO_TOKEN})" env: CAPGO_TOKEN: ${{ secrets.CAPGO_TOKEN }}Tidak ditemukan artefak pembangunan:
- name: Debug artifacts run: | echo "Checking for build artifacts..." ls -la dist/ || echo "No dist directory found" find . -name "*.js" -o -name "*.html" | head -10Masalah koneksi jaringan:
- name: Test connectivity run: | ping -c 3 api.capgo.io || echo "Ping failed" curl -I https://api.capgo.io/health || echo "Health check failed"Alur Kerja yang Dapat Dibagikan
Judul Bagian “Alur Kerja yang Dapat Dibagikan”Buat alur kerja yang dapat dibagikan untuk konsistensi di antara proyek:
name: Reusable Capgo Deploy
on: workflow_call: inputs: environment: required: true type: string channel: required: true type: string secrets: CAPGO_TOKEN: required: true CAPGO_APP_ID: required: true
jobs: deploy: runs-on: ubuntu-latest environment: ${{ inputs.environment }} steps: - uses: actions/checkout@v6
- name: Setup Node.js uses: actions/setup-node@v6 with: node-version: '24' cache: 'npm'
- name: Install and build run: | npm ci npm run build
- name: Deploy to Capgo run: | npm install -g @capgo/cli npx @capgo/cli bundle upload \ --apikey ${{ secrets.CAPGO_TOKEN }} \ --app ${{ secrets.CAPGO_APP_ID }} \ --channel ${{ inputs.channel }}Gunakan aliran kerja yang dapat digunakan kembali:
name: Deploy App
on: push: branches: [main, develop]
jobs: deploy-dev: if: github.ref == 'refs/heads/develop' uses: ./.github/workflows/reusable-capgo-deploy.yml with: environment: development channel: development secrets: CAPGO_TOKEN: ${{ secrets.CAPGO_TOKEN }} CAPGO_APP_ID: ${{ secrets.CAPGO_APP_ID }}
deploy-prod: if: github.ref == 'refs/heads/main' uses: ./.github/workflows/reusable-capgo-deploy.yml with: environment: production channel: production secrets: CAPGO_TOKEN: ${{ secrets.CAPGO_TOKEN }} CAPGO_APP_ID: ${{ secrets.CAPGO_APP_ID }}Langkah-Langkah Selanjutnya
Judul bagian “Langkah-Langkah Selanjutnya”- Pelajari tentang Saluran untuk mengelola berbagai lingkungan pengiriman
- Tamu Penyimpanan Kustom untuk skenario penggunaan lanjutan
- Set up Enkripsi untuk penggunaan yang lebih aman
- Konfigurasi Perbarui Pola untuk mengatur cara perbarui yang diterapkan
Dengan integrasi GitHub Actions, Anda dapat memanfaatkan kemampuan GitHub’s CI/CD yang kuat untuk membuat alur kerja penggunaan yang canggih dengan fitur keamanan, pemantauan, dan kolaborasi yang terintegrasi untuk Capgo Live Updates.
Lanjutkan dari GitHub Actions Integration
Judul bagian “Lanjutkan dari GitHub Actions Integration”Jika Anda menggunakan GitHub Actions Integration untuk merencanakan otomatisasi CI/CD, hubungkannya dengan Capgo Otomatisasi CI/CD untuk alur kerja produk di Capgo Otomatisasi CI/CD, Capgo Pembangunan Nativ untuk alur kerja produk di Capgo Pembangunan Nativ, Capgo Integrasi untuk alur kerja produk di Capgo Integrasi, Integrasi CI/CD untuk detail implementasi di Integrasi CI/CD, dan Integrasi CI/CD GitLab untuk detail implementasi di Integrasi CI/CD GitLab.