Integración con Bitbucket Pipelines
Copia un prompt de configuración con los pasos de instalación y la guía completa en markdown para este plugin.
Integra Capgo Live Updates con Bitbucket Pipelines para desplegar automáticamente las actualizaciones de tu app cada vez que hagas push de cambios a code. Esta guía cubre la configuración de builds automatizados, testing y workflows de despliegue.
Requisitos
Sección titulada “Prerrequisitos”Antes de configurar la integración con Bitbucket Pipelines, asegúrate de tener:
- Una cuenta de Bitbucket con un repositorio
- Una cuenta de Capgo con una app configurada
- Node.js y npm/yarn configurados en tu proyecto
Configuración de Bitbucket Pipelines
Sección titulada “Configuración de Bitbucket Pipelines”Paso 1: Configurar las variables del repositorio
Sección titulada “Paso 1: Configurar las variables del repositorio”Primero, configura las variables necesarias en tu repositorio de Bitbucket:
- Ve a tu repositorio de Bitbucket
- Ve a Configuración del repositorio → Pipelines → Variables del repositorio
- Añade las siguientes variables:
| Nombre de la variable | Valor | Protegida |
|---|---|---|
CAPGO_TOKEN | Tu token de Capgo API | ✅ Sí |
Sencillo
Sección titulada “Simple”Configuración básica que despliega en producción con cada push a la rama main:
# bitbucket-pipelines.yml - Simple Configurationimage: node:22
pipelines: branches: main: - step: name: Build and Deploy to Production script: - npm ci - npm run test - npm run build - npm install -g @capgo/cli - npx @capgo/cli bundle upload --apikey $CAPGO_TOKEN --channel production artifacts: - dist/**Avanzado
Sección titulada “Avanzado”Despliegues en feature branches
Despliegues de ramas de featureDespliega feature branches en canales de prueba para revisión y pruebas:
# Feature branch deploymentpipelines: branches: feature/*: - step: name: Deploy Feature Branch script: - npm ci - npm run test - npm run build - BRANCH_NAME=$(echo $BITBUCKET_BRANCH | sed 's/[^a-zA-Z0-9-]/-/g') - CHANNEL_NAME="feature-$BRANCH_NAME" - npm install -g @capgo/cli - npx @capgo/cli channel add $CHANNEL_NAME --apikey $CAPGO_TOKEN || true - npx @capgo/cli bundle upload --apikey $CAPGO_TOKEN --channel $CHANNEL_NAME artifacts: - dist/**Uso de cifrado
Sección titulada “Uso del cifrado”Si estás usando La función de cifrado de Capgo, deberás guardar tu clave privada de forma segura en tu entorno de CI/CD.
Después de configurar las claves de cifrado localmente, añade tu clave privada a las variables de Bitbucket:
# Display your private key content (copy this output)cat .capgo_key_v2Añade este contenido como CAPGO_PRIVATE_KEY en las variables de tu repositorio de Bitbucket (márcala como secreta), luego úsala en tus pipelines:
# Deploy with encryption- step: name: Deploy to Capgo with Encryption script: - npm install -g @capgo/cli - npx @capgo/cli bundle upload --apikey $CAPGO_TOKEN --key-data-v2 "$CAPGO_PRIVATE_KEY" --channel productionConfiguración multicanal
Sección titulada “Configuración multicanal”Para información completa sobre cómo configurar y gestionar varios canales de despliegue, consulta la documentación de Channels.
Configuración completa con múltiples entornos y despliegues mediante pull requests:
# bitbucket-pipelines.yml - Advanced Multi-Channel Configurationimage: node:22
definitions: steps: - step: &build-step name: Build Application script: - npm ci - npm run test - npm run build artifacts: - dist/**
- step: &deploy-step name: Deploy to Capgo script: - npm install -g @capgo/cli - npx @capgo/cli bundle upload --apikey $CAPGO_TOKEN --channel $CHANNEL_NAME
pipelines: branches: main: - step: <<: *build-step - step: <<: *deploy-step name: Deploy to Production deployment: production trigger: manual script: - export CHANNEL_NAME=production - npm install -g @capgo/cli - npx @capgo/cli bundle upload --apikey $CAPGO_TOKEN --channel $CHANNEL_NAME
develop: - step: <<: *build-step - step: <<: *deploy-step name: Deploy to Development deployment: development script: - export CHANNEL_NAME=development - npm install -g @capgo/cli - npx @capgo/cli bundle upload --apikey $CAPGO_TOKEN --channel $CHANNEL_NAME
pull-requests: '**': - step: <<: *build-step - step: name: Deploy PR to Test Channel script: - CHANNEL_NAME="pr-$BITBUCKET_PR_ID" - npm install -g @capgo/cli - npx @capgo/cli channel add $CHANNEL_NAME --apikey $CAPGO_TOKEN || true - npx @capgo/cli bundle upload --apikey $CAPGO_TOKEN --channel $CHANNEL_NAME artifacts: - dist/**Pipeline multi-entorno
Sección titulada “Pipeline multi-entorno”Para escenarios de despliegue complejos con entornos de staging y producción:
# Multi-environment pipelineimage: node:22
pipelines: branches: main: - step: name: Build script: - npm ci - npm run test - npm run build artifacts: - dist/** - step: name: Deploy to Staging deployment: staging script: - npm install -g @capgo/cli - npx @capgo/cli bundle upload --apikey $CAPGO_TOKEN --channel staging - step: name: Deploy to Production deployment: production trigger: manual script: - npm install -g @capgo/cli - npx @capgo/cli bundle upload --apikey $CAPGO_TOKEN --channel production
develop: - step: name: Build and Deploy to Development script: - npm ci - npm run test - npm run build - npm install -g @capgo/cli - npx @capgo/cli bundle upload --apikey $CAPGO_TOKEN --channel development artifacts: - dist/**Estrategia de despliegue basada en ramas
Sección titulada “Estrategia de despliegue basada en ramas”Despliega automáticamente diferentes ramas a los canales correspondientes:
# Dynamic channel deploymentimage: node:22
definitions: scripts: - script: &determine-channel | if [ "$BITBUCKET_BRANCH" = "main" ]; then export CHANNEL_NAME="production" elif [ "$BITBUCKET_BRANCH" = "develop" ]; then export CHANNEL_NAME="staging" else export CHANNEL_NAME="development" fi echo "Deploying to channel: $CHANNEL_NAME"
pipelines: default: - step: name: Build and Deploy script: - npm ci - npm run test - npm run build - *determine-channel - npm install -g @capgo/cli - npx @capgo/cli bundle upload --apikey $CAPGO_TOKEN --channel $CHANNEL_NAME artifacts: - dist/**Ejecución de pipeline en paralelo
Sección titulada “Ejecución de pipeline en paralelo”Optimiza los tiempos de build con pasos en paralelo:
# Parallel execution pipelineimage: node:22
pipelines: branches: main: - parallel: - step: name: Run Tests script: - npm ci - npm run test - step: name: Lint Code script: - npm ci - npm run lint - step: name: Build Application script: - npm ci - npm run build artifacts: - dist/** - step: name: Deploy to Production deployment: production script: - npm install -g @capgo/cli - npx @capgo/cli bundle upload --apikey $CAPGO_TOKEN --channel productionMejores prácticas de seguridad
Sección titulada “Buenas prácticas de seguridad”Variables del repositorio
Sección titulada “Variables del repositorio”- Variables protegidas: Marca siempre los tokens de API como protegidos
- Variables de entorno: Usa variables específicas de despliegue cuando sea necesario
- Control de acceso: Limita el acceso al repositorio a miembros autorizados
- Rotación de tokens: Rota periódicamente tus tokens API de Capgo
Entornos de despliegue
Sección titulada “Entornos de despliegue”Configura entornos de despliegue para mayor seguridad:
# Deployment with environment restrictionspipelines: branches: main: - step: name: Deploy to Production deployment: production trigger: manual script: - npm install -g @capgo/cli - npx @capgo/cli bundle upload --apikey $CAPGO_TOKEN --channel productionMonitoreo y notificaciones
Sección titulada “Monitoreo y notificaciones”Integración con Slack
Sección titulada “Integración con Slack”Añade notificaciones de Slack a tu pipeline:
# Pipeline with Slack notificationspipelines: branches: main: - step: name: Build and Deploy script: - npm ci - npm run test - npm run build - npm install -g @capgo/cli - npx @capgo/cli bundle upload --apikey $CAPGO_TOKEN --channel production after-script: - | if [ $BITBUCKET_EXIT_CODE -eq 0 ]; then curl -X POST -H 'Content-type: application/json' \ --data '{"text":"✅ Capgo deployment successful for '$BITBUCKET_BRANCH'"}' \ $SLACK_WEBHOOK_URL else curl -X POST -H 'Content-type: application/json' \ --data '{"text":"❌ Capgo deployment failed for '$BITBUCKET_BRANCH'"}' \ $SLACK_WEBHOOK_URL fiNotificaciones por email
Sección titulada “Notificaciones por email”Configura las notificaciones por email mediante las funciones nativas de Bitbucket o usando servicios externos:
# Email notification step- step: name: Send Notification script: - | curl -X POST \ -H "Content-Type: application/json" \ -d '{ "to": "team@yourcompany.com", "subject": "Capgo Deployment Status", "body": "Deployment of '$BITBUCKET_BRANCH' completed with status: '$BITBUCKET_EXIT_CODE'" }' \ $EMAIL_SERVICE_URL condition: result: [successful, failed]Solución de problemas
Sección titulada “Solución de problemas”Problemas comunes
Sección titulada “Common Issues”El pipeline falla con “Capgo CLI not found”:
# Debug CLI installation- step: name: Debug CLI script: - npm install -g @capgo/cli - which capgo || echo "Capgo CLI not found" - npx @capgo/cli --versionErrores de autenticación:
# Verify token configuration- step: name: Debug Auth script: - | if [ -z "$CAPGO_TOKEN" ]; then echo "CAPGO_TOKEN is not set" exit 1 fi echo "Token length: ${#CAPGO_TOKEN}"No se encuentran los artifacts del build:
# List build outputs- step: name: Debug Build script: - ls -la dist/ - find dist/ -type f -name "*.js" -o -name "*.html"Depurar el pipeline
Sección titulada “Debug Pipeline”Añade información de depuración para solucionar problemas:
# Debug pipelinepipelines: branches: main: - step: name: Debug Information script: - echo "Branch: $BITBUCKET_BRANCH" - echo "Commit: $BITBUCKET_COMMIT" - echo "Build: $BITBUCKET_BUILD_NUMBER" - env | grep BITBUCKET_ | sort - step: name: Build and Deploy script: - npm ci - npm run test - npm run build - npm install -g @capgo/cli - npx @capgo/cli bundle upload --apikey $CAPGO_TOKEN --channel productionValidación del Pipeline
Sección titulada “Pipeline Validation”Activa la validación del pipeline para detectar errores de configuración:
# Enable pipeline validationoptions: docker: true size: 2x
pipelines: branches: main: - step: name: Validate Pipeline script: - echo "Pipeline validation successful" - step: name: Build and Deploy script: # ... deployment stepsPróximos pasos
Sección titulada “Próximos pasos”- Aprende sobre Canales para gestionar distintos entornos de despliegue
- Explorar Almacenamiento personalizado para escenarios de despliegue avanzados
- Configura Cifrado para despliegues seguros
- Configurar Comportamiento de actualización para personalizar cómo se aplican las actualizaciones
Con la integración de Bitbucket Pipelines, puedes automatizar tus despliegues de Capgo y garantizar actualizaciones consistentes y fiables para los usuarios de tu app móvil.
Continuar desde la integración de Bitbucket Pipelines
Sección titulada “Continuar desde la integración de Bitbucket Pipelines”Si estás usando Integración con Bitbucket Pipelines para planificar la automatización de CI/CD, conéctalo con CI/CD de Capgo para el flujo de trabajo del producto en Capgo CI/CD, Native Builds de Capgo para el flujo de trabajo del producto en Capgo Native Builds, Integraciones de Capgo para el flujo de trabajo del producto en Capgo Integraciones, Integración CI/CD para los detalles de implementación de CI/CD Integration, y Integración con GitHub Actions para los detalles de implementación de GitHub Actions Integration.