Lompat ke Konten

Mulai Bangun Nativ dari Antarmuka CI

Kadang-kadang Anda memerlukan file biner iOS atau Android yang ditandatangani tanpa menggabungkan PR atau memotong tag rilis — bangunan QA, resubmit toko, atau TestFlight satu-satunya. Setiap host utama code dapat memulai pipa dari UI webnya. Panduan ini menunjukkan cara menghubungkan UI tersebut ke Capgo Build.

Tidak Ada Upacara Git

Klik Run workflow / Run pipeline. Capgo Pembangunan mengompilasi dari cabang yang Anda pilih.

Input yang Aman

Sistem dan mode pembangunan menggunakan pilihan yang terbatas di mana host mendukung mereka (GitHub / Bitbucket / Azure). Variabel GitLab tetap dapat diedit per jalur kecuali Anda mendefinisikan Input Jalur Dengan options.

Sama Rahasia sebagai CI

Gunakan kembali Capgo Kredensial Pembangunan yang sudah ada di repositori Anda. Tidak ada yang baru di laptop.

  • Capgo Pembangunan berjalan sekali di lokal atau di CI — lihat Mulai
  • Menggunakan rahasia yang sudah ditandatangani di host (untuk GitHub, ekspor dengan CLI dan gh secret set -f)
  • CAPGO_TOKEN disimpan sebagai rahasia tersembunyi / variabel CI

GitHub's Aksi tab __CAPGO_KEEP_0__ dapat memulai setiap alur kerja yang mengumumkan workflow_dispatch.

.github/alur-kerja/capgo-build-manual.yml
name: Capgo Build (Manual)
on:
workflow_dispatch:
inputs:
platform:
description: Platform to build
required: true
default: both
type: choice
options: [ios, android, both]
mode:
description: Build mode
required: true
default: debug
type: choice
options: [debug, release]
ref_note:
description: Optional note for the run summary
required: false
type: string
jobs:
build:
runs-on: ubuntu-latest
environment: ${{ inputs.mode == 'release' && 'production' || 'build-debug' }}
strategy:
fail-fast: false
matrix:
platform: ${{ fromJSON(inputs.platform == 'both' && '["ios","android"]' || format('["{0}"]', inputs.platform)) }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v6
with:
node-version: '24'
cache: 'npm'
- run: npm ci
- run: npm run build
- run: npx cap sync ${{ matrix.platform }}
- name: Capgo Build
env:
CAPGO_TOKEN: ${{ secrets.CAPGO_TOKEN }}
BUILD_CERTIFICATE_BASE64: ${{ secrets.BUILD_CERTIFICATE_BASE64 }}
P12_PASSWORD: ${{ secrets.P12_PASSWORD }}
CAPGO_IOS_PROVISIONING_MAP: ${{ secrets.CAPGO_IOS_PROVISIONING_MAP }}
APPLE_KEY_ID: ${{ secrets.APPLE_KEY_ID }}
APPLE_ISSUER_ID: ${{ secrets.APPLE_ISSUER_ID }}
APPLE_KEY_CONTENT: ${{ secrets.APPLE_KEY_CONTENT }}
APP_STORE_CONNECT_TEAM_ID: ${{ secrets.APP_STORE_CONNECT_TEAM_ID }}
ANDROID_KEYSTORE_FILE: ${{ secrets.ANDROID_KEYSTORE_FILE }}
KEYSTORE_KEY_ALIAS: ${{ secrets.KEYSTORE_KEY_ALIAS }}
KEYSTORE_KEY_PASSWORD: ${{ secrets.KEYSTORE_KEY_PASSWORD }}
KEYSTORE_STORE_PASSWORD: ${{ secrets.KEYSTORE_STORE_PASSWORD }}
PLAY_CONFIG_JSON: ${{ secrets.PLAY_CONFIG_JSON }}
run: |
EXTRA=""
if [ "${{ inputs.mode }}" = "debug" ] && [ "${{ matrix.platform }}" = "android" ]; then
EXTRA="--no-playstore-upload --output-upload"
fi
npx @capgo/cli@latest build request com.example.app \
--platform ${{ matrix.platform }} \
--build-mode ${{ inputs.mode }} \
$EXTRA
  1. Buka repositori GitHub di browser
  2. Pilih Aksi
  3. Pilih Capgo Build (Manual)
  4. Klik Jalankan alur kerja
  5. Pilih cabang, platform, dan mode
  6. Konfirmasi Jalankan alur kerja

Siapa pun dengan buat akses dapat memulai sebuah build. Contoh peta yang release berjalan ke sebuah GitHub Lingkungan bernama production — buat lingkungan tersebut dan tambahkan reviewer yang diperlukan agar build menunggu persetujuan. Tanpa environment: di pekerjaan, aturan perlindungan lingkungan tidak pernah berlaku.

GitLab dapat menjalankan sebuah pekerjaan dari Pembangunan → Pipa → Jalankan pipa ketika pekerjaan tersedia untuk cabang tersebut.

# Job fragment for .gitlab-ci.yml
stages:
- build
variables:
APP_ID: com.example.app
PLATFORM: android # override from Run pipeline UI
BUILD_MODE: debug
capgo_native_manual:
stage: build
when: manual
script:
- npm ci
- npm run build
- npx cap sync "$PLATFORM"
- |
npx @capgo/cli@latest build request "$APP_ID" \
--platform "$PLATFORM" \
--build-mode "$BUILD_MODE"
rules:
# Actions / Pipelines UI → manual play button
- if: '$CI_PIPELINE_SOURCE == "web"'
when: manual
# Pipeline trigger token / webhook → run automatically
- if: '$CI_PIPELINE_SOURCE == "trigger"'
when: on_success
- when: never
  1. Buka proyek GitLab
  2. Pergi ke Pembangunan → Pipa → Jalankan pipa
  3. Pilih cabang
  4. Opsional, atur PLATFORM / BUILD_MODE variabel untuk menjalankan ini
  5. Jalankan pipa, kemudian klik tombol mainkan capgo_manual native

when: manual mencegah pekerjaan dari mengeluarkan setiap push; UI web (atau token pengaktif pipeline) token pengaktif pipeline) memulai secara on demand.

Gunakan pipeline kustom agar UI Bitbucket dapat melewatkan variabel:

bitbucket-pipelines.yml
pipelines:
custom:
capgo-native-build:
- variables:
- name: PLATFORM
default: android
allowed-values:
- ios
- android
- name: BUILD_MODE
default: debug
allowed-values:
- debug
- release
- step:
name: Capgo Build
image: node:24
script:
- npm ci
- npm run build
- npx cap sync "$PLATFORM"
- npx @capgo/cli@latest build request com.example.app --platform "$PLATFORM" --build-mode "$BUILD_MODE"

Jalankan dari Pipelines → Jalankan pipeline → Kustom: capgo-native-build. Simpan CAPGO_TOKEN dan materi tanda tangan Pengaturan Repository → Pipelines → Variabel Repository.

azure-pipelines-capgo-manual.yml
trigger: none # disable CI push triggers
pr: none # also disable PR triggers (GitHub/Bitbucket-backed projects)
parameters:
- name: platform
displayName: Platform
type: string
default: android
values:
- ios
- android
- name: buildMode
displayName: Build mode
type: string
default: debug
values:
- debug
- release
pool:
vmImage: ubuntu-latest
steps:
- task: NodeTool@0
inputs:
versionSpec: '24.x'
- script: |
npm ci
npm run build
npx cap sync ${{ parameters.platform }}
npx @capgo/cli@latest build request com.example.app \
--platform ${{ parameters.platform }} \
--build-mode ${{ parameters.buildMode }}
env:
CAPGO_TOKEN: $(CAPGO_TOKEN)
# map other signing secrets from Library → Variable groups

trigger: none dan pr: none tetapkan aliran pipa tidak secara otomatis menjalankan CI/PR sehingga memulai dari Pipelines → Jalankan aliran pipa (atau webhook). Jika proyek menggunakan kebijakan cabang Azure Repos yang mengantre aliran pipa ini, nonaktifkan kebijakan tersebut secara terpisah. Tambahkan CAPGO_TOKEN dan nilai tanda tangan ke dalam kelompok variabel yang ditandai rahasia.

Judul Bagian yang Disarankan
InputNilai yang DisarankanCatatan
Platformios, android, bothMatrix Ketika both
Modedebug, releaseDebug + --output-upload untuk Tautan QA
Distribusi iOSapp_store, ad_hocApp Store Tidak Pernah Mengirimkan Ad-hoc

Untuk Artefak QA yang Dapat Diunduh, Gabungkan Debug Android dengan --no-playstore-upload --output-upload dan baca URL dengan build last-output.

  • Gunakan aturan perlindungan lingkungan (GitHub) atau variabel yang dilindungi (GitLab) untuk release proses pembangunan yang mengirimkan ke toko.
  • Tidak letakkan kata sandi tanda tangan di workflow inputs hanya di rahasia/variabel.
  • Batasi siapa saja yang dapat menjalankan workflow dengan peran repository dan izin tim (akses tulis diperlukan pada GitHub). Perlindungan cabang sendiri tidak mengontrol Jalankan workflow; tambahkan pengecekan otorisasi dalam workflow jika hanya kelompok yang lebih terbatas yang dapat memulai pembangunan.