Saltar al contenido

Activar Compilaciones Nativas desde la IU de CI

A veces necesitas un binario iOS o Android firmado sin fusionar una PR o cortar una etiqueta de lanzamiento — una compilación de QA, una resubmisión de tienda o una prueba de TestFlight. Cada host mayor de code puede iniciar una canalización desde su interfaz de usuario web. Esta guía muestra cómo cablear esa interfaz a Capgo Build.

No hay ceremonia Git

Haz clic en Ejecutar flujo de trabajo / Ejecutar canalización. Capgo Build compila desde la rama que elijas.

Entradas Seguras

La plataforma y el modo de compilación utilizan opciones limitadas donde el host las admite (GitHub / Bitbucket / Azure). Las variables de GitLab permanecen editables por ejecución a menos que definas Entradas de pipeline con options.

Los mismos secretos que CI

Reuse the Capgo Build credentials already in your repo. Nothing new on laptops.

  • La compilación de Capgo funciona una vez localmente o en CI — vea Empezar
  • Las firmas de secretos ya presentes en el host (para GitHub exporta con el CLI y gh secret set -f)
  • CAPGO_TOKEN almacenado como un secreto mascarado / variable de CI

GitHub’s Acciones la pestaña de Acciones puede iniciar cualquier flujo de trabajo que declare workflow_dispatch.

.github/trabajos/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. Abra el repositorio GitHub en el navegador
  2. Vaya a Acciones
  3. Seleccione Capgo Build (Manual)
  4. Haga clic Ejecutar flujo de trabajo
  5. Seleccione la rama, plataforma y modo
  6. Confirmar Ejecutar flujo de trabajo

Cualquiera con permiso de escritura puede iniciar una compilación. Los mapas de muestra release se ejecuta a un GitHub Entorno llamado production — cree ese entorno y agregue los revisores requeridos para que los almacenamientos de compilaciones esperen la aprobación. Sin environment: en el trabajo, las reglas de protección del entorno nunca se aplican.

GitLab puede ejecutar un trabajo desde Construir → Pipelines → Ejecutar pipeline cuando el trabajo esté disponible para esa rama.

# 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. Abrir el proyecto de GitLab
  2. Ir a Construir → Pipelines → Ejecutar pipeline
  3. Elegir la rama
  4. Configurar opcionalmente PLATFORM / BUILD_MODE variables para esta ejecución
  5. Ejecutar la pipeline, luego haga clic en el botón de reproducción en capgo_native_manual

when: manual mantiene el trabajo desde que no se dispare en cada empujón; la interfaz de usuario web (o un token de disparador de pipeline) lo inicia a demanda.

Utilice un pipeline personalizado para que la interfaz de usuario de Bitbucket pueda pasar variables:

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"

Ejecútelo desde Pipelines → Ejecutar pipeline → Personalizado: capgo-native-buildAlmacene CAPGO_TOKEN y el material de firma bajo Configuración del repositorio → Pipelines → Variables del repositorio.

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 y pr: none mantenga la canalización fuera de ejecuciones automáticas de CI/PR para que comience desde Pipelines → Ejecutar canalización (o un webhook). Si el proyecto utiliza políticas de rama de Azure Repos que ponen en cola esta canalización, desactive esa política por separado. Agregue CAPGO_TOKEN y valores de firma a un grupo de variables marcado como secreto.

EntradaValores sugeridosNotas
Plataformaios, android, bothCuando la matriz both
Mododebug, releaseDepuración + --output-upload para enlaces de QA
Distribución de iOSapp_store, ad_hocNunca se envía a App Store

Para artefactos de QA descargables, combine la depuración de Android con --no-playstore-upload --output-upload y lee la URL con build last-output.

  • Preferir reglas de protección del entorno (GitHub) o variables protegidas (GitLab) para release los builds que se envían a tiendas.
  • No coloque contraseñas de firma en flujos de trabajo inputs – solo en secretos/variables.
  • Limitar a quién puede ejecutar flujos de trabajo con roles de repositorio y permisos de equipo (se requiere acceso de escritura en GitHub). La protección de ramas sola no controla Ejecutar flujo de trabajo; agregar una comprobación de autorización dentro del flujo de trabajo si solo un grupo más estrecho puede iniciar builds.