Intégration CI/CD de GitLab
Copier un prompt de configuration avec les étapes d'installation et la guide markdown complet pour ce 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.
Section intitulée « Prérequis »
Avant de configurer l'intégration CI/CD de GitLab, assurez-vous d'avoir :Un compte GitLab avec un référentiel de projet
- Intégrez les mises à jour en direct __CAPGO_KEEP_0__ avec GitLab CI/CD pour déployer automatiquement vos mises à jour d'applications chaque fois que vous poussez __CAPGO_KEEP_1__ des modifications.
- A 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 “Configuration de GitLab CI/CD”Étape 1 : Configurez les variables d'environnement
Section intitulée “Étape 1 : Configurez les variables d'environnement”Commencez par configurer les variables nécessaires dans votre projet GitLab :
- Naviguez vers votre projet GitLab
- Allez à Paramètres → CI/CD → Variables
- Ajoutez les variables suivantes :
| Nom de variable | Valeur | Protégé | Caché |
|---|---|---|---|
CAPGO_TOKEN | Votre jeton Capgo API | ✅ Oui | ✅ Oui |
Configuration de base qui déploie en production à chaque poussée sur la branche principale :
# .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 de fonctionnalité
Section intitulée “Déploiements de branches de fonctionnalité”Déployez les branches de fonctionnalité dans les 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 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_NAMESection intitulée “Utilisation de l'encryption”
Si vous utilisez la fonctionnalité d'encryption de __CAPGO_KEEP_0__Vous devrez stocker votre clé privée de manière sécurisée dans votre environnement CI/CD. Capgo’s encryption featurela mise en place des clés d'encryption
la mise en place des clés d'encryption la mise en place des clés d'encryption Ajoutez votre clé privée localement dans les variables de GitLab :
# Display your private key content (copy this output)cat .capgo_key_v2Ajoutez ce contenu comme CAPGO_PRIVATE_KEY dans les variables de votre projet GitLab (marquez-le comme protégé et masqué), puis utilisez-le dans les 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-canal
Section intitulée « Configuration multi-canal »Pour obtenir des informations complètes sur la mise en place et la gestion de plusieurs canaux de déploiement, consultez la documentation des canaux.
Configuration complète avec plusieurs environnements et déploiements de demande de fusion :
# .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: productionDéploiement multi-environnement avec approbation manuelle
Section intitulée « Déploiement multi-environnement avec approbation manuelle »Pour les déploiements de 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 basée sur la branche
Stratégie de déploiement basée sur les branchesDéployez automatiquement différentes branches sur 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: $CHANNELMeilleures Pratiques de Sécurité
Section intitulée « Meilleures Pratiques de Sécurité »Variables Protégées
Section intitulée « Variables Protégées »- Marquer les variables sensibles: Toujours marquer les jetons API comme protégés et masqués
- Protection de branchage: Utilisez les variables protégées pour les déploiements de production
- Contrôle d'accès: Accès limité aux variables aux seuls administrateurs
- Rotation régulière: Rotorisez régulièrement les API tokens
Configuration de pipeline sécurisée
Section intitulée “Configuration de pipeline sécurisée”# 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"Surveillance et notifications
Section intitulée “Surveillance 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 courriel
Section intitulée “Notifications par courriel”Configurez les notifications par courriel dans les paramètres de votre projet GitLab ou utilisez le 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: alwaysRésolution des problèmes
Section intitulée “Résolution des problèmes”Problèmes courants
Section intitulée “Problèmes courants”L'exécution de la pipeline se termine par “Capgo CLI non trouvé” :
# 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 construction non trouvés :
# List build outputsdebug_build: script: - ls -la dist/ - find dist/ -type f -name "*.js" -o -name "*.html"Pipeline de débogage
Section intitulée « Pipeline de débogage »Ajouter 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 »- Apprendre à Canaux pour gérer différents environnements de déploiement
- Explorer Stockage personnalisé pour des scénarios de déploiement avancés
- Configurer Chiffrage pour des déploiements sécurisés
- Configurer Comportement de mise à jour pour personnaliser la façon dont les mises à jour sont appliquées
Avec l'intégration GitLab CI/CD, vous pouvez automatiser vos Capgo déploiements et vous assurer d'une mise à jour cohérente et fiable pour vos utilisateurs de l'application mobile.
Continuez depuis l'intégration GitLab CI/CD
Section intitulée “Continuez depuis l'intégration GitLab CI/CD”Si vous utilisez Intégration GitLab CI/CD pour planifier l'automatisation CI/CD, connectez-le à Capgo CI/CD pour le flux de travail du produit dans Capgo CI/CD, Capgo Builds natifs pour le flux de travail du produit dans Capgo Builds natifs, Capgo Intégrations pour le flux de travail du produit dans Capgo Intégrations, Intégration CI/CD pour les détails d'implémentation dans Intégration CI/CD, et GitHub Intégration d'Actions pour les détails d'implémentation dans GitHub Intégration d'Actions.