Aucune cérémonie Git
Click Run workflow / Run pipeline. Capgo Build compiles from the branch you pick.
Copiez une invite de configuration avec les étapes d'installation et la guide markdown complet pour ce plugin.
Sometimes you need a signed iOS or Android binary without merging a PR or cutting a release tag — a QA build, a store resubmit, or a one-off TestFlight. Every major code host can start a pipeline from its web UI. This guide shows how to wire that UI to Capgo Build.
Aucune cérémonie Git
Click Run workflow / Run pipeline. Capgo Build compiles from the branch you pick.
Entrées sécurisées
La plateforme et le mode de construction utilisent des choix contraints où l'hôte les supporte (GitHub / Bitbucket / Azure). Les variables GitLab restent éditable par exécution sauf si vous définissez Entrées de pipeline avec options.
Mêmes secrets que CI
Reuse the Capgo Build credentials already in your repo. Nothing new on laptops.
gh secret set -f)CAPGO_TOKEN stocké sous forme de secret masqué / variable CIGitHub’s Actions tab can start any workflow that declares 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 }} \ $EXTRATout le monde avec write access can start a build. The sample maps release exécute vers un environnement GitHub nommé production — créez cet environnement et ajoutez les revendeurs requis afin que les builds attendent l'approbation. Sans environment: on the job, environment protection rules never apply.
GitLab peut exécuter un travail à partir de Construire → Pipelines → Exécuter le pipeline lorsque le travail est disponible pour cette branche.
# 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 variables pour cette exécutionwhen: manual garde l'emploi de la tâche à chaque push ; l'interface web (ou un jeton de déclencheur de pipeline) le déclenche à la demande.
Use a custom pipeline so the Bitbucket UI can pass variables:
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"Exécutez-le depuis Pipelines → Exécuter la pipeline → Personnalisé : capgo-build-natifEnregistrez CAPGO_TOKEN et les matériaux de signature sous Paramètres de dépôt → Pipelines → Variables de dépôt.
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 et pr: none keep the pipeline off automatic CI/PR runs so it starts from Pipelines → Exécuter la pipeline Si le projet utilise des politiques de branchement Azure Repos qui déclenchent cette pipeline, désactivez cette politique séparément. Ajoutez CAPGO_TOKEN et les valeurs de signature à un groupe de variables marqué secret.
| Entrée | Valeurs suggérées | Remarques |
|---|---|---|
| Plateforme | ios, android, both | Matrice lorsque both |
| Mode | debug, release | Debug + --output-upload pour liens QA |
| Distribution iOS | app_store, ad_hoc | Jamais soumis à l'App Store |
Pour les artefacts QA téléchargeables, combinez le débogage Android avec --no-playstore-upload --output-upload et lisez l'URL avec build last-output.
release les builds qui sont soumis aux magasins.inputs seulement dans les secrets/variables.