Integración de GitLab CI/CD
Copie un prompt de configuración con los pasos de instalación y la guía de markdown completa para este complemento.
Integra Capgo Actualizaciones en vivo con GitLab CI/CD para que se desplieguen automáticamente las actualizaciones de tu aplicación cada vez que pulses code cambios. Esta guía cubre la configuración de compilaciones automatizadas, pruebas y flujos de trabajo de despliegue.
Requisitos previos
Título de sección “Requisitos previos”Antes de configurar la integración de GitLab CI/CD, asegúrate de tener:
- Una cuenta de GitLab con un repositorio de proyecto
- Una Capgo cuenta con una aplicación configurada
- Node.js y npm/yarn configurados en tu 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 Ajustes → CI/CD → Variables
- Agregue 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 empujón 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”Implementaciones de rama de características
Sección titulada “Implementaciones de rama de características”Despliega rama de características 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á almacenar su clave privada de manera segura en su entorno de CI/CD.
Después de configurar las claves de cifrado localmente, agregue su clave privada a las variables de GitLab:
# Display your private key content (copy this output)cat .capgo_key_v2Agregue este contenido como CAPGO_PRIVATE_KEY en sus variables de proyecto de GitLab (marque como protegidas y ocultas), luego utilícelo en flujos de trabajo:
# 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 productionConfiguración de múltiples canales
Título de la sección “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 integración:
# .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: productionMulti-Entorno con Aprobación Manual
Título de la sección “Multi-Entorno con Aprobación Manual”Para 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
Título de la sección “Estrategia de Despliegue Basada en Rama”Despliegue de diferentes ramas a los canales adecuados automáticamente:
# 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 Requeridas
Sección titulada “Prácticas de Seguridad Requeridas”Variables Protegidas
Sección titulada “Variables Protegidas”- Marcar Variables Sensibles: Siempre marca los tokens API como protegidos y ocultos
- Protección de Rama: Utiliza variables protegidas para despliegues de producción
- Control de Acceso: Limita el acceso a variables a los mantenedores solo
- Rotación Regular: Rota los tokens API con regularidad
Configuración de Pipeline Seguro
Sección titulada “Configuración de Pipeline Seguro”# 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 de Slack
Sección titulada “Integración de 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
Sección titulada “Notificaciones por Correo”Configura notificaciones por correo en los ajustes de tu 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: alwaysResolució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 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"Depurar Pipeline
Sección titulada “Pipline 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”- Aprende sobre Canales Aprende sobre los canales para gestionar diferentes entornos de despliegue
- Explora 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 GitLab CI/CD, puede automatizar sus Capgo despliegues y asegurarse de actualizaciones consistentes y fiables para los usuarios de su aplicación móvil.
Siga adelante desde la integración de GitLab CI/CD
Sección titulada “Siga adelante desde la integración de GitLab CI/CD”Si está utilizando Integración de GitLab CI/CD para planificar la automatización de CI/CD, conecte con Capgo CI/CD para el flujo de trabajo del producto en Capgo CI/CD, Capgo Compilaciones Nativas para el flujo de trabajo del producto en Capgo Compilaciones Nativas, Capgo Integraciones for the product workflow in Capgo Integrations, para el flujo de trabajo del producto en __CAPGO_KEEP_0__ Integraciones, Integración CI/CD GitHub Actions Integration for the implementation detail in GitHub Actions Integration.