Integración con GitLab CI/CD
Copie una solicitud de configuración con los pasos de instalación y la guía de markdown completa para este plugin.
Integrate Capgo Live Updates with GitLab CI/CD to automatically deploy your app updates whenever you push code changes. This guide covers setting up automated builds, testing, and deployment workflows.
Configuración con IA
Sección titulada “Requisitos previos”Antes de configurar la integración de GitLab CI/CD, asegúrese de tener:
- Una cuenta de GitLab con un repositorio de proyecto
- Una cuenta de Capgo con una aplicación configurada
- Node.js y npm/yarn configurados en su proyecto
Configuración de GitLab CI/CD
Sección titulada “Configuración de GitLab CI/CD”Paso 1: Configurar variables de entorno
Sección titulada “Paso 1: Configurar variables de entorno”Primero, establezca las variables necesarias en su proyecto de GitLab:
- Navegue a su proyecto de GitLab
- Vaya a Configuración → CI/CD → Variables
- Agregar las siguientes variables:
| Nombre de la variable | Valor | Protegido | Oculto |
|---|---|---|---|
CAPGO_TOKEN | Su token Capgo API | ✅ Sí | ✅ Sí |
Configuración básica que despliega a producción en cada push a la rama principal:
# .gitlab-ci.yml - Simple Configurationimage: node:22
stages: - build - deploy
variables: npm_config_cache: "$CI_PROJECT_DIR/.npm"
build: stage: build script: - npm ci - npm run test - npm run build artifacts: paths: - dist/ expire_in: 1 hour only: - main
deploy_production: stage: deploy script: - npm install -g @capgo/cli - npx @capgo/cli bundle upload --apikey $CAPGO_TOKEN --channel production # For encrypted uploads, add: --key-data-v2 "$CAPGO_PRIVATE_KEY" dependencies: - build only: - mainAvanzado
Sección titulada “Avanzado”Despliegues de rama de características
Sección titulada “Despliegues de Rama de Funcionalidad”Despliegue rama de funcionalidad a canales de prueba para revisión y pruebas:
# Feature branch deploymentdeploy_feature: stage: deploy script: - npm install -g @capgo/cli - CHANNEL_NAME="feature-$(echo $CI_COMMIT_REF_NAME | sed 's/[^a-zA-Z0-9-]/-/g')" - npx @capgo/cli channel create $CHANNEL_NAME --apikey $CAPGO_TOKEN || true - npx @capgo/cli bundle upload --apikey $CAPGO_TOKEN --channel $CHANNEL_NAME dependencies: - build only: - /^feature\/.*$/ environment: name: feature/$CI_COMMIT_REF_NAME url: https://your-app.com/channels/$CHANNEL_NAMEUsando la Cifrado
Sección titulada “Usando la Cifrado”Si está 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 GitLab:
# Display your private key content (copy this output)cat .capgo_key_v2Agrega este contenido como CAPGO_PRIVATE_KEY en las variables de tu proyecto de GitLab (marca como protegidas y ocultas), luego úsalo en las pipelines:
# Deploy with encryptiondeploy_production: script: - npm install -g @capgo/cli - npx @capgo/cli bundle upload --apikey $CAPGO_TOKEN --key-data-v2 "$CAPGO_PRIVATE_KEY" --channel productionSecció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 ladocumentación de canales Configuración completa con múltiples entornos y despliegues de solicitud de revisión: .
Copiar al portapapeles
# .gitlab-ci.yml - Advanced Multi-Channel Configurationimage: node:22
stages: - build - deploy
variables: npm_config_cache: "$CI_PROJECT_DIR/.npm"
# Build stagebuild: stage: build script: - npm ci - npm run test - npm run build artifacts: paths: - dist/ expire_in: 24 hours
# Deploy to development channeldeploy_development: stage: deploy script: - npm install -g @capgo/cli - npx @capgo/cli bundle upload --apikey $CAPGO_TOKEN --channel development dependencies: - build only: - develop environment: name: development
# Deploy merge requests to test channelsdeploy_mr: stage: deploy script: - npm install -g @capgo/cli - CHANNEL_NAME="mr-$CI_MERGE_REQUEST_IID" - npx @capgo/cli channel create $CHANNEL_NAME --apikey $CAPGO_TOKEN || true - npx @capgo/cli bundle upload --apikey $CAPGO_TOKEN --channel $CHANNEL_NAME dependencies: - build only: - merge_requests environment: name: review/$CI_MERGE_REQUEST_IID url: https://your-app.com/channels/mr-$CI_MERGE_REQUEST_IID on_stop: cleanup_mr
# Cleanup MR channels when MR is closedcleanup_mr: stage: deploy script: - npm install -g @capgo/cli - npx @capgo/cli channel delete mr-$CI_MERGE_REQUEST_IID --apikey $CAPGO_TOKEN || true when: manual environment: name: review/$CI_MERGE_REQUEST_IID action: stop only: - merge_requests
# Deploy to stagingdeploy_staging: stage: deploy script: - npm install -g @capgo/cli - npx @capgo/cli bundle upload --apikey $CAPGO_TOKEN --channel staging dependencies: - build only: - develop environment: name: staging
# Deploy to productiondeploy_production: stage: deploy script: - npm install -g @capgo/cli - npx @capgo/cli bundle upload --apikey $CAPGO_TOKEN --channel production dependencies: - build only: - main environment: name: productionSección titulada “Con múltiples entornos con aprobación manual”
Almacena la clave privada solo en la gestión de secretos de CI/CD seguraPara despliegues de producción que requieren aprobación manual:
deploy_production: stage: deploy script: - npm install -g @capgo/cli - npx @capgo/cli bundle upload --apikey $CAPGO_TOKEN --channel production dependencies: - build only: - main when: manual environment: name: productionEstrategia de Despliegue Basada en Rama
Sección titulada “Estrategia de Despliegue Basada en Rama”Despliegue de diferentes ramas a los canales correspondientes de manera automática:
# Dynamic channel deployment based on branchdeploy: stage: deploy script: - npm install -g @capgo/cli - | if [ "$CI_COMMIT_REF_NAME" = "main" ]; then CHANNEL="production" elif [ "$CI_COMMIT_REF_NAME" = "develop" ]; then CHANNEL="staging" else CHANNEL="development" fi - npx @capgo/cli bundle upload --apikey $CAPGO_TOKEN --channel $CHANNEL dependencies: - build environment: name: $CHANNELPrácticas de Seguridad
Sección titulada “Prácticas de Seguridad”Variables Protegidas
Sección titulada “Variables Protegidas”- Marcar Variables Sensibles: Siempre marca los tokens API como protegidos y ocultos
- Protección de Rama: Utilice variables protegidas para despliegues de producción
- Control de Acceso: Limitar el acceso a variables a los mantenedores solo
- Rotación Regular: Rotar tokens API con regularidad
Configuración de Pipeline Segura
Sección titulada “Configuración de Pipeline Segura”# Use protected variables for productiondeploy_production: stage: deploy script: - npm install -g @capgo/cli - npx @capgo/cli bundle upload --apikey $CAPGO_TOKEN --channel production only: refs: - main variables: - $CI_COMMIT_REF_PROTECTED == "true"Monitoreo 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:
notify_success: stage: .post image: alpine:latest before_script: - apk add --no-cache curl script: - | curl -X POST -H 'Content-type: application/json' \ --data '{"text":"✅ Capgo deployment successful for '"$CI_COMMIT_REF_NAME"'"}' \ $SLACK_WEBHOOK_URL when: on_success
notify_failure: stage: .post image: alpine:latest before_script: - apk add --no-cache curl script: - | curl -X POST -H 'Content-type: application/json' \ --data '{"text":"❌ Capgo deployment failed for '"$CI_COMMIT_REF_NAME"'"}' \ $SLACK_WEBHOOK_URL when: on_failureNotificaciones por correo electrónico
Sección titulada “Notificaciones por correo electrónico”Configura notificaciones por correo electrónico en los ajustes de proyecto de GitLab o utiliza el API:
notify_email: stage: .post script: - | curl --request POST \ --header "PRIVATE-TOKEN: $GITLAB_API_TOKEN" \ --form "to=team@yourcompany.com" \ --form "subject=Capgo Deployment Status" \ --form "body=Deployment of $CI_COMMIT_REF_NAME completed with status: $CI_JOB_STATUS" \ "https://gitlab.com/api/v4/projects/$CI_PROJECT_ID/emails" when: alwaysSolución de problemas
Sección titulada “Solución de problemas”Problemas comunes
Sección titulada “Problemas comunes”La pipeline falla con “Capgo CLI no encontrado”
# Debug CLI installationdebug_cli: script: - npm install -g @capgo/cli - which capgo || echo "Capgo CLI not found" - npx @capgo/cli --versionErrores de autenticación:
# Verify token configurationdebug_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 outputsdebug_build: script: - ls -la dist/ - find dist/ -type f -name "*.js" -o -name "*.html"Pipoteca de depuración
Sección titulada “Pipoteca de depuración”Agregar información de depuración para solucionar problemas:
debug: stage: build script: - echo "Branch: $CI_COMMIT_REF_NAME" - echo "Commit: $CI_COMMIT_SHA" - echo "Build: $CI_PIPELINE_ID" - env | grep CI_ | sort only: - branchesPasos 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 GitLab CI/CD, puedes automatizar tus Capgo despliegues y asegurarte de que las actualizaciones sean consistentes y fiables para los usuarios de tu aplicación móvil.