Bitbucket Intégration des pipelines
Intégrez Capgo Live Updates avec Bitbucket Pipelines pour déployer automatiquement les mises à jour de votre application chaque fois que vous apportez des modifications au code. Ce guide couvre la configuration des flux de travail automatisés de génération, de test et de déploiement.
Prérequis
Section titled “Prérequis”Avant de configurer l’intégration de Bitbucket Pipelines, assurez-vous d’avoir :
- Un compte Bitbucket avec un dépôt
- Un compte Capgo avec une application configurée
- Node.js et npm/fil configurés dans votre projet
Configuration des pipelines Bitbucket
Section titled “Configuration des pipelines Bitbucket”É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
- Accédez à Paramètres du référentiel → Pipelines → Variables du référentiel
- Ajoutez les variables suivantes :
| Nom de la variable | Valeur | Sécurisé |
|---|---|---|
CAPGO_TOKEN | Votre jeton Capgo API | ✅ Oui |
Simple
Section titled “Simple”Configuration de base qui se déploie en production à chaque poussée vers la branche principale :
# bitbucket-pipelines.yml - Simple Configurationimage: 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 des branches de fonctionnalités pour tester les canaux à des fins d’examen et de test :
# Feature branch deploymentpipelines: 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 cryptage
Section titled “Utilisation du cryptage”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 :
# Display your private key content (copy this output)cat .capgo_key_v2Ajoutez ce contenu sous le nom CAPGO_PRIVATE_KEY dans vos variables de référentiel Bitbucket (marquez comme sécurisé), puis utilisez-le dans les pipelines :
# Deploy with encryption- 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 multicanal
Section titled “Configuration multicanal”Pour obtenir des informations complètes sur la configuration et la gestion de plusieurs canaux de déploiement, consultez la Documentation des canaux.
Configuration complète avec plusieurs environnements et déploiements de pull request :
# bitbucket-pipelines.yml - Advanced Multi-Channel Configurationimage: 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-environnement
Section titled “Pipeline multi-environnement”Pour les scénarios de déploiement complexes avec des environnements de transfert et de production :
# Multi-environment pipelineimage: 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 succursales
Section titled “Stratégie de déploiement basée sur les succursales”Déployez automatiquement différentes branches sur les canaux appropriés :
# Dynamic channel deploymentimage: 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 de pipelines parallèles
Section titled “Exécution de pipelines parallèles”Optimisez les temps de construction avec des étapes parallèles :
# Parallel execution pipelineimage: 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 productionBonnes pratiques de sécurité
Section titled “Bonnes pratiques de sécurité”Variables du référentiel
Section titled “Variables du référentiel”- Variables sécurisées : marquez toujours les jetons API comme sécurisés
- Variables d’environnement : utilisez des variables spécifiques au déploiement si nécessaire
- Contrôle d’accès : limitez l’accès au référentiel aux membres autorisés de l’équipe
- Rotation des jetons : faites régulièrement pivoter vos jetons Capgo API
Environnements de déploiement
Section titled “Environnements de déploiement”Configurez les environnements de déploiement pour une meilleure sécurité :
# Deployment with environment restrictionspipelines: 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 with Slack notificationspipelines: 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 :
# Email notification step- 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 introuvable » :
# Debug CLI installation- step: name: Debug CLI script: - npm install -g @capgo/cli - which capgo || echo "Capgo CLI not found" - npx @capgo/cli --versionErreurs d’authentification :
# Verify token configuration- step: name: Debug Auth script: - | if [ -z "$CAPGO_TOKEN" ]; then echo "CAPGO_TOKEN is not set" exit 1 fi echo "Token length: ${#CAPGO_TOKEN}"Artéfacts de construction introuvables :
# List build outputs- 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 :
# Debug pipelinepipelines: 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 production### Validation des pipelines
Activez la validation du pipeline pour détecter les erreurs de configuration :
# Enable pipeline validationoptions: docker: true size: 2x
pipelines: branches: main: - step: name: Validate Pipeline script: - echo "Pipeline validation successful" - step: name: Build and Deploy script: # ... deployment stepsProchaines étapes
Section titled “Prochaines étapes”- Découvrez les Canaux pour gérer différents environnements de déploiement
- Explorez Custom Storage pour des scénarios de déploiement avancés
- Configurer le Chiffrement pour des déploiements sécurisés
- Configurez [Comportement de mise à jour] (/docs/live-updates/update-behavior/) pour personnaliser la façon dont les mises à jour sont appliquées
With Bitbucket Pipelines integration, you can automate your Capgo deployments and ensure consistent, reliable updates to your mobile app users.