Tidak Ada Upacara Git
Klik Run workflow / Run pipeline. Capgo Pembangunan mengompilasi dari cabang yang Anda pilih.
Salin prompt pengaturan dengan langkah instalasi dan panduan markdown lengkap untuk plugin ini.
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.
gh secret set -f)CAPGO_TOKEN disimpan sebagai rahasia tersembunyi / variabel CIGitHub's Aksi tab __CAPGO_KEEP_0__ dapat memulai setiap alur kerja yang mengumumkan 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 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.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 menjalankan iniwhen: 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:
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.
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 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.
| Input | Nilai yang Disarankan | Catatan |
|---|---|---|
| Platform | ios, android, both | Matrix Ketika both |
| Mode | debug, release | Debug + --output-upload untuk Tautan QA |
| Distribusi iOS | app_store, ad_hoc | App 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.
release proses pembangunan yang mengirimkan ke toko.inputs hanya di rahasia/variabel.