Intégration Bitbucket Pipelines
Intégrez Capgo Live Updates avec Bitbucket Pipelines pour déployer automatiquement vos mises à jour d’application à chaque fois que vous poussez des modifications de code. Ce guide couvre la configuration des workflows de build, de test et de déploiement automatisés.
Prérequis
Section titled “Prérequis”Avant de configurer l’intégration Bitbucket Pipelines, assurez-vous d’avoir :
- Un compte Bitbucket avec un référentiel
- Un compte Capgo avec une application configurée
- Node.js et npm/yarn configurés dans votre projet
Configuration de Bitbucket Pipelines
Section titled “Configuration de Bitbucket Pipelines”Étape 1 : Configurer les variables du référentiel
Section titled “Étape 1 : Configurer les variables du référentiel”Tout d’abord, configurez les variables nécessaires dans votre référentiel Bitbucket :
- Accédez à votre référentiel Bitbucket
- Allez dans Paramètres du référentiel → Pipelines → Variables du référentiel
- Ajoutez les variables suivantes :
| Nom de variable | Valeur | Sécurisé |
|---|---|---|
CAPGO_TOKEN | Votre jeton API Capgo | ✅ Oui |
Simple
Section titled “Simple”Configuration de base qui déploie en production à chaque push vers la branche main :
# bitbucket-pipelines.yml - Configuration simpleimage: 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/**Avancé
Section titled “Avancé”Déploiements de branches de fonctionnalités
Section titled “Déploiements de branches de fonctionnalités”Déployez les branches de fonctionnalités vers des canaux de test pour révision et test :
# Déploiement de branche de fonctionnalitépipelines: 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/**Utilisation du chiffrement
Section titled “Utilisation du chiffrement”Si vous utilisez la fonctionnalité de chiffrement de Capgo, vous devrez stocker votre clé privée en toute sécurité dans votre environnement CI/CD.
Après avoir configuré les clés de chiffrement localement, ajoutez votre clé privée aux variables Bitbucket :
# Afficher le contenu de votre clé privée (copiez cette sortie)cat .capgo_key_v2Ajoutez ce contenu en tant que CAPGO_PRIVATE_KEY dans les variables de votre référentiel Bitbucket (marquez comme sécurisé), puis utilisez-le dans les pipelines :
# Déployer avec chiffrement- 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 productionConfiguration multi-canaux
Section titled “Configuration multi-canaux”Pour des informations complètes sur la configuration et la gestion de plusieurs canaux de déploiement, consultez la documentation sur les canaux.
Configuration complète avec plusieurs environnements et déploiements de pull request :
# bitbucket-pipelines.yml - Configuration multi-canaux avancéeimage: 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 multi-environnements
Section titled “Pipeline multi-environnements”Pour des scénarios de déploiement complexes avec des environnements de staging et de production :
# Pipeline multi-environnementsimage: 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/**Stratégie de déploiement basée sur les branches
Section titled “Stratégie de déploiement basée sur les branches”Déployer automatiquement différentes branches vers les canaux appropriés :
# Déploiement dynamique de canalimage: 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/**Exécution parallèle de pipeline
Section titled “Exécution parallèle de pipeline”Optimisez les temps de build avec des étapes parallèles :
# Pipeline d'exécution parallèleimage: 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 productionMeilleures pratiques de sécurité
Section titled “Meilleures pratiques de sécurité”Variables du référentiel
Section titled “Variables du référentiel”- Variables sécurisées : Toujours marquer les jetons API comme sécurisés
- Variables d’environnement : Utiliser des variables spécifiques au déploiement si nécessaire
- Contrôle d’accès : Limiter l’accès au référentiel aux membres autorisés de l’équipe
- Rotation des jetons : Effectuer régulièrement la rotation de vos jetons API Capgo
Environnements de déploiement
Section titled “Environnements de déploiement”Configurez les environnements de déploiement pour une meilleure sécurité :
# Déploiement avec restrictions d'environnementpipelines: 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 productionSurveillance et notifications
Section titled “Surveillance et notifications”Intégration Slack
Section titled “Intégration Slack”Ajoutez des notifications Slack à votre pipeline :
# Pipeline avec notifications Slackpipelines: 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 fiNotifications par e-mail
Section titled “Notifications par e-mail”Configurez les notifications par e-mail via les fonctionnalités intégrées de Bitbucket ou en utilisant des services externes :
# Étape de notification par e-mail- 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]Dépannage
Section titled “Dépannage”Problèmes courants
Section titled “Problèmes courants”Le pipeline échoue avec “Capgo CLI not found” :
# Déboguer l'installation du CLI- step: name: Debug CLI script: - npm install -g @capgo/cli - which capgo || echo "Capgo CLI not found" - npx @capgo/cli --versionErreurs d’authentification :
# Vérifier la configuration du jeton- step: name: Debug Auth script: - | if [ -z "$CAPGO_TOKEN" ]; then echo "CAPGO_TOKEN is not set" exit 1 fi echo "Token length: ${#CAPGO_TOKEN}"Artefacts de build introuvables :
# Lister les sorties de build- step: name: Debug Build script: - ls -la dist/ - find dist/ -type f -name "*.js" -o -name "*.html"Pipeline de débogage
Section titled “Pipeline de débogage”Ajoutez des informations de débogage pour résoudre les problèmes :
# Pipeline de débogagepipelines: 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 productionValidation du pipeline
Section titled “Validation du pipeline”Activez la validation du pipeline pour détecter les erreurs de configuration :
# Activer la validation du pipelineoptions: docker: true size: 2x
pipelines: branches: main: - step: name: Validate Pipeline script: - echo "Pipeline validation successful" - step: name: Build and Deploy script: # ... étapes de déploiementProchaines étapes
Section titled “Prochaines étapes”- Découvrez les Canaux pour gérer différents environnements de déploiement
- Explorez le Stockage personnalisé pour des scénarios de déploiement avancés
- Configurez le Chiffrement pour des déploiements sécurisés
- Configurez le Comportement des mises à jour pour personnaliser l’application des mises à jour
Avec l’intégration Bitbucket Pipelines, vous pouvez automatiser vos déploiements Capgo et garantir des mises à jour cohérentes et fiables pour les utilisateurs de votre application mobile.