Integración de Bitbucket Pipelines
Copie un prompt de configuración con los pasos de instalación y la guía de markdown completa para este plugin.
Integra Capgo Actualizaciones en vivo con Bitbucket Pipelines para que se desplieguen automáticamente las actualizaciones de tu aplicación cada vez que envíes code cambios. Esta guía cubre la configuración de compilaciones automatizadas, pruebas y flujos de trabajo de despliegue.
Requisitos previos
Sección titulada “Requisitos previos”Antes de configurar la integración de Bitbucket Pipelines, asegúrate de tener:
- Una cuenta de Bitbucket con un repositorio
- Una cuenta de Capgo con una aplicación configurada
- Node.js y npm/yarn configurados en tu proyecto
Configuración de Bitbucket Pipelines
Configuración de Bitbucket PipelinesPaso 1: Configura Variables de Repositorio
Sección titulada “Paso 1: Configura Variables de Repositorio”Primero, configura las variables necesarias en tu repositorio de Bitbucket:
- Navega a tu repositorio de Bitbucket
- Ir a Configuración de repositorio → Flujos de trabajo → Variables de repositorio
- Agrega las siguientes variables:
| Nombre de la variable | Valor | Protegido |
|---|---|---|
CAPGO_TOKEN | Su Capgo API token | ✅ Sí |
Configuración básica que despliega a producción en cada push a la rama principal:
Copiar a portapapelesConfiguración simple
# 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 de Rama de Funcionalidad
Sección titulada “Despliegues de Rama de Funcionalidad”Despliega rama de funcionalidad a 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 create $CHANNEL_NAME --apikey $CAPGO_TOKEN || true - npx @capgo/cli bundle upload --apikey $CAPGO_TOKEN --channel $CHANNEL_NAME artifacts: - dist/**Uso de la Cifrado
Sección titulada “Usando cifrado”Si estás utilizando Capgo’s característica de cifrado, necesitarás almacenar tu clave privada de manera segura en tu entorno de CI/CD.
Después de configurar las claves de cifrado localmente, agrega tu clave privada a las variables de Bitbucket:
# Display your private key content (copy this output)cat .capgo_key_v2Agrega este contenido como CAPGO_PRIVATE_KEY en las variables de tu repositorio de Bitbucket (marcado como seguro), luego úsalo en las 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 de múltiples canales
Sección titulada “Configuración de múltiples canales”Para obtener información completa sobre la configuración y gestión de múltiples canales de despliegue, consulte la documentación de canales.
Configuración completa con múltiples entornos y despliegues de solicitudes de extracción:
# 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 create $CHANNEL_NAME --apikey $CAPGO_TOKEN || true - npx @capgo/cli bundle upload --apikey $CAPGO_TOKEN --channel $CHANNEL_NAME artifacts: - dist/**Pipeline de Entornos Multiples
Sección titulada “Pipeline de Entornos Multiples”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 Rama
Sección titulada “Estrategia de Despliegue Basada en Rama”Desplegar automáticamente diferentes ramas en los canales adecuados:
# 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 Paralela de Pipeline
Sección titulada “Ejecución Paralela de Pipeline”Optimizar tiempos de compilación con pasos paralelos:
# 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 productionPrácticas de seguridad recomendadas
Sección titulada “Prácticas de seguridad recomendadas”Variables del repositorio
Sección titulada “Variables del repositorio”- Variables seguras: Siempre marque los tokens API como seguros
- Variables de entorno: Utilice variables específicas de la implementación cuando sea necesario
- Control de acceso: Limitar el acceso al repositorio a miembros del equipo autorizados
- Rotación de tokens: Rotar regularmente tus Capgo API tokens
Entornos de Despliegue
Sección titulada “Entornos de Despliegue”Configure entornos de despliegue para una 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”Agregar 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 Correo
Sección titulada “Notificaciones por Correo Electrónico”Configure las notificaciones por correo electrónico a través de las características integradas de Bitbucket o utilizando 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]Resolución de Problemas
Sección titulada “Resolución de Problemas”Problemas Comunes
Sección titulada “Problemas Comunes”El pipeline falla con “Capgo CLI no encontrado”:
# 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 encontraron artefactos de compilación:
# List build outputs- step: name: Debug Build script: - ls -la dist/ - find dist/ -type f -name "*.js" -o -name "*.html"Pipline de depuración
Sección titulada “Pipline de depuración”Agregar 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 de Pipline
Sección titulada “Validación de Pipline”Habilitar la validación de pipline 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 stepsPasos siguientes
Sección titulada “Pasos siguientes”- Aprender sobre Canales para gestionar diferentes entornos de despliegue
- Explora Almacenamiento personalizado para escenarios de despliegue avanzados
- Configura Cifrado para despliegues seguros
- Configura Comportamiento de actualización para personalizar cómo se aplican las actualizaciones
Con la integración de Pipelines de Bitbucket, puedes automatizar tus Capgo despliegues y asegurarte de que las actualizaciones sean consistentes y fiables para los usuarios de tu aplicación móvil.