Tanpa Ritual Git
Klik Run workflow / Run pipeline. Capgo Build akan compile dari branch yang Anda pilih.
Salin prompt setup yang berisi langkah install dan panduan markdown lengkap untuk plugin ini.
Terkadang Anda butuh binary iOS atau Android yang sudah ditandatangani tanpa harus merge PR atau membuat release tag — build QA, submit ulang ke store, atau TestFlight sekali jalan. Setiap host code utama dapat memulai pipeline dari web UI-nya. Panduan ini menunjukkan cara menghubungkan UI tersebut ke Capgo Build.
Tanpa Ritual Git
Klik Run workflow / Run pipeline. Capgo Build akan compile dari branch yang Anda pilih.
Input Aman
Platform dan build mode memakai pilihan terbatas jika host mendukungnya (GitHub / Bitbucket / Azure). Variabel GitLab tetap bisa diedit per run kecuali Anda mendefinisikan input pipeline dengan options.
Secret yang Sama dengan CI
Gunakan kembali kredensial Capgo Build yang sudah ada di repo Anda. Tidak perlu setting baru di laptop.
gh secret set -f)CAPGO_TOKEN disimpan sebagai masked secret / variabel CImilik GitHub Aksi tab dapat memulai workflow apa pun yang mendeklarasikan workflow_dispatch.
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 }} \ $EXTRASiapa pun dengan akses tulis dapat memulai build. Contoh ini memetakan release ke GitHub Environment bernama production — buat environment tersebut dan tambahkan reviewer agar build menunggu persetujuan. Tanpa environment: pada job, aturan environment protection tidak akan berlaku.
GitLab dapat menjalankan job dari Build → Pipelines → Jalankan pipeline saat job tersedia untuk branch tersebut.
# Job fragment for .gitlab-ci.ymlstages: - 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: neverPLATFORM / BUILD_MODE variabel untuk run iniwhen: manual mencegah job berjalan di setiap push; web UI (atau sebuah token pemicu pipeline) akan menjalankannya sesuai permintaan.
Gunakan pipeline kustom agar UI Bitbucket bisa mengirim variabel:
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 → Custom: capgo-native-build. Simpan CAPGO_TOKEN dan material signing di Pengaturan repositori → Pipelines → Variabel repositori.
trigger: none # disable CI push triggerspr: 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 groupstrigger: none dan pr: none matikan pipeline dari otomatisasi CI/PR agar bisa dijalankan dari Pipelines → Jalankan pipeline (atau webhook). Jika proyek menggunakan Azure Repos branch policies untuk antrean pipeline ini, nonaktifkan policy tersebut secara terpisah. Tambahkan CAPGO_TOKEN dan nilai signing ke dalam variable group bertanda secret.
| Input | Nilai yang disarankan | Catatan |
|---|---|---|
| Platform | ios, android, both | Matrix kapan both |
| Mode | debug, release | Debug + --output-upload untuk link QA |
| distribusi iOS | app_store, ad_hoc | Ad-hoc tidak pernah submit ke App Store |
Untuk artifact QA yang bisa diunduh, gabungkan debug Android dengan --no-playstore-upload --output-upload dan baca URL dengan build last-output.
release build yang submit ke store.inputs — gunakan secrets/variables saja.