Intégration GitLab CI/CD
Copiez un prompt de configuration incluant les étapes d'installation et le guide markdown complet pour ce plugin.
Intégrez Capgo Live Updates avec GitLab CI/CD pour déployer automatiquement les mises à jour de votre application dès que vous poussez des code changements. Ce guide couvre la configuration des workflows de build automatisés, de test et de déploiement.
Prerequisites
Section intitulée « Prérequis »Avant de configurer l'intégration GitLab CI/CD, assurez-vous d'avoir :
- Un compte GitLab avec un dépôt de projet
- Un compte Capgo avec une application configurée
- Node.js et npm/yarn configurés dans votre projet
Configuration de GitLab CI/CD
Section intitulée « Configurer GitLab CI/CD »Étape 1 : configurer les variables d'environnement
Section intitulée « Étape 1 : Configurer les variables d'environnement »Tout d'abord, configurez les variables nécessaires dans votre projet GitLab :
- Accédez à votre projet GitLab
- Accéder à Paramètres → CI/CD → Variables
- Ajoutez les variables suivantes :
| Nom de la variable | Valeur | Protégée | Masquée |
|---|---|---|---|
CAPGO_TOKEN | Votre token Capgo API | ✅ Oui | ✅ Oui |
Configuration de base pour déployer en production à chaque push sur la branche main :
# .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: - mainDéploiements de branches feature
Section intitulée « Déploiements de branches feature »Déployez vos branches de fonctionnalités vers des canaux de test pour la revue et les tests :
# 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 add $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_NAMEUtilisation du chiffrement
Section intitulée « Utilisation du chiffrement »Si vous utilisez la fonctionnalité de chiffrement de Capgo, vous devrez stocker votre clé privée de manière sécurisée dans votre environnement CI/CD.
Après la configuration des clés de chiffrement En local, ajoutez votre clé privée aux variables GitLab :
# Display your private key content (copy this output)cat .capgo_key_v2Ajoutez ce contenu en tant que CAPGO_PRIVATE_KEY dans les variables de votre projet GitLab (marquez-la comme protégée et masquée), puis utilisez-la dans vos 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 productionConfiguration multi-canaux
Section intitulée « Configuration multi-canaux »Pour plus d'informations sur la configuration et la gestion de plusieurs canaux de déploiement, consultez la documentation des canaux.
Complétez la configuration avec plusieurs environnements et des déploiements via merge request :
# .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 add $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-environnements avec approbation manuelle
Section intitulée « Multi-environnement avec approbation manuelle »Pour les déploiements en production nécessitant une approbation manuelle :
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: productionStratégie de déploiement par branche
Section intitulée « Stratégie de déploiement par branche »Déployez automatiquement différentes branches vers les canaux appropriés :
# 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: $CHANNELBonnes pratiques de sécurité
Section intitulée « Bonnes pratiques de sécurité »Variables protégées
Section intitulée « Variables protégées »- Marquer les variables sensibles: Marquez toujours les tokens API comme protégés et masqués
- Protection des branches: Utilisez des variables protégées pour les déploiements en production
- Contrôle d’accès: Limitez l'accès aux variables aux seuls mainteneurs
- Rotation régulière: Faites tourner les tokens API régulièrement
Configuration sécurisée du pipeline
Section intitulée « Configuration sécurisée du pipeline »# 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"Monitoring et notifications
Section intitulée « Monitoring et notifications »Intégration Slack
Section intitulée « Intégration Slack »Ajoutez des notifications Slack à votre 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_failureNotifications par e-mail
Section intitulée « Notifications par e-mail »Configurez les notifications par e-mail dans les paramètres de votre projet GitLab ou utilisez l’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: alwaysTroubleshooting
Section intitulée « Dépannage »Problèmes courants
Section intitulée « Problèmes courants »Le pipeline échoue avec l'erreur « Capgo CLI not found » :
# Debug CLI installationdebug_cli: script: - npm install -g @capgo/cli - which capgo || echo "Capgo CLI not found" - npx @capgo/cli --versionErreurs d'authentification :
# Verify token configurationdebug_auth: script: - | if [ -z "$CAPGO_TOKEN" ]; then echo "CAPGO_TOKEN is not set" exit 1 fi echo "Token length: ${#CAPGO_TOKEN}"Les artefacts de build sont introuvables :
# List build outputsdebug_build: script: - ls -la dist/ - find dist/ -type f -name "*.js" -o -name "*.html"Débogage du pipeline
Section intitulée « Débogage du pipeline »Ajoutez des informations de débogage pour résoudre les problèmes :
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: - branchesÉtapes suivantes
Section intitulée « Étapes suivantes »- En savoir plus sur Canaux pour gérer différents environnements de déploiement
- Explorer Stockage personnalisé pour des scénarios de déploiement avancés
- Configuration Chiffrement pour des déploiements sécurisés
- Configurer Comportement de mise à jour pour personnaliser l'application des mises à jour
Grâce à l'intégration GitLab CI/CD, vous pouvez automatiser vos déploiements Capgo et garantir des mises à jour cohérentes et fiables à vos utilisateurs mobiles.
Continuer avec l'intégration GitLab CI/CD
Section intitulée « Continuer avec l'intégration GitLab CI/CD »Si vous utilisez Intégration GitLab CI/CD pour planifier l'automatisation CI/CD, et le connecter avec CI/CD Capgo pour le workflow produit dans le CI/CD de Capgo, Capgo Native Build pour le workflow produit dans les Native Builds de Capgo, Intégrations Capgo pour le workflow produit dans les intégrations de Capgo, Intégration CI/CD pour le détail d'implémentation dans l'intégration CI/CD, et Intégration GitHub Actions pour les détails d'implémentation de l'intégration GitHub Actions.