Intégration CI/CD
Copiez une commande de configuration avec les étapes d'installation et la guide markdown complète pour ce plugin.
Integrating Capgo into your CI/CD pipeline allows you to fully automate the process of building and deploying updates to your app. By leveraging the Capgo CLI and semantic-release, you can ensure consistent, reliable deployments and enable rapid iteration.
Includes install, sync, and the source markdown guide.
Section intitulée « Les avantages de l'intégration CI/CD »-
AutomatisationPas plus de tâches manuelles ou de place pour les erreurs humaines. Tout votre processus de construction, de test et de déploiement peut être automatisé de bout en bout.
-
ConsistanceChaque déploiement suit le même ensemble d'étapes, garantissant un processus prévisible et répétable. C'est tout particulièrement précieux lorsque vous avez plusieurs membres d'équipe contribuant code.
-
Itérations plus rapidesAvec des déploiements automatisés, vous pouvez envoyer des mises à jour plus fréquemment et avec confiance. Pas besoin d'attendre les approbations de QA ou de libération manuelles.
Section intitulée « Capgo CLI »
La clé de l'intégration CI/CD est le Capgo CLI qui permet d'intégrer __CAPGO_KEEP_2__ dans votre flux de travail CI/CD. Il fournit des commandes pour la mise à jour de versions de bundles, la gestion de canaux, et plus encore.The Capgo CLI is the key to integrating Capgo into your CI/CD workflow. It provides commands for pushing new bundle versions, managing channels, and more.
Fenêtre de terminal bundle upload:
npx @capgo/cli@latest bundle upload --channel Production --apikey YOUR_API_KEYSi vous utilisez l'encryption, vous devez le fournir d'une des manières suivantes :
En utilisant un chemin de fichier de clé privée :
npx @capgo/cli@latest bundle upload --channel Production --apikey YOUR_API_KEY --key-v2 PRIVATE_KEY_PATHEn utilisant directement le contenu de la clé privée (recommandé pour CI/CD) :
npx @capgo/cli@latest bundle upload --channel Production --apikey YOUR_API_KEY --key-data-v2 PRIVATE_KEY_CONTENTEn utilisant les variables d'environnement (meilleure pratique pour CI/CD) :
npx @capgo/cli@latest bundle upload --channel Production --apikey YOUR_API_KEY --key-data-v2 "$CAPGO_PRIVATE_KEY"Configuration des variables d'environnement pour l'encryption
Section intitulée « Configuration des variables d'environnement pour la cryptage »Pour les environnements CI/CD, il est recommandé de stocker votre clé privée en tant que variable d'environnement plutôt qu'en fichier. Voici comment procéder :
-
Obtenez le contenu de votre clé privée :
Fenêtre de terminal cat .capgo_key_v2 | pbcopyCela copie le contenu de la clé dans votre presse-papier.
-
Ajoutez-le à votre environnement CI/CD :
- GitHub Actions: Ajouter
CAPGO_PRIVATE_KEYà vos secrets de repository - GitLab CI: Ajoutez-le en tant que variable masquée dans vos paramètres de projet
- CircleCI: Ajoutez-le en tant que variable d'environnement dans vos paramètres de projet
- Jenkins: Ajoutez-le en tant que texte de secret de la credencia
- GitHub Actions: Ajouter
-
Utilisez-le dans votre pipeline :
- run: npx @capgo/cli@latest bundle upload --channel=production --apikey=${{ secrets.CAPGO_API_KEY }} --key-data-v2 "${{ secrets.CAPGO_PRIVATE_KEY }}"
Note: Le --key-data-v2 flag permet de passer le contenu de la clé privée directement en tant que chaîne de caractères, ce qui est parfait pour les variables d'environnement dans les pipelines CI/CD où vous ne souhaitez pas créer de fichiers temporaires.
Cette commande télécharge la version web actuelle dans le canal spécifié. Vous allez généralement exécuter cette commande en dernier dans votre pipeline CI/CD, après que votre build web ait été exécuté avec succès.
Configuration de Capgo dans votre pipeline CI/CD
Section intitulée « Configuration de Capgo dans votre pipeline CI/CD »Bien que les étapes exactes varient en fonction de votre outil CI/CD de choix, le processus général pour intégrer Capgo ressemble à ceci :
-
Générez une clé API: Connectez-vous à l'interface de dashboard de Capgo et créez une nouvelle clé API . Cette clé sera utilisée pour authentifier le CLI dans votre environnement CI/CD. Gardez-la secrète et n'y commitez jamais dans votre dépôt !
-
Configurez la
bundle uploadcommande: Ajoutez une étape à votre configuration CI/CD qui exécute labundle uploadcommande avec les arguments appropriés :Remplacezupload.yml - run: npx @capgo/cli@latest bundle upload --channel=production --apikey=${{ secrets.CAPGO_API_KEY }}Productionpar le canal que vous souhaitez déployer,${{ secrets.CAPGO_API_KEY }}par la variable d'environnement contenant votre clé API et ajoutez--key-data-v2 "${{ secrets.CAPGO_PRIVATE_KEY }}"Si vous utilisez l'encryption. -
Ajoutez le
uploadétape après votre build web : Assurez-vous que l'uploadstep comes after your web build has completed successfully. This ensures you’re always deploying your latest code.\n Here’s an example configuration for GitHub Actions:\nVoici un exemple de configuration pour __CAPGO_KEEP_1__ Actions: name: Deploy to Capgoon:push:branches: [main]jobs:deploy:runs-on: ubuntu-lateststeps:- uses: actions/checkout@v6- uses: actions/setup-node@v6with:node-version: '24'- run: npm ci- run: npm run build- run: npm install -g @capgo/cli- run: npx @capgo/cli@latest bundle upload --channel=production --apikey=${{ secrets.CAPGO_API_KEY }} --key-data-v2 "${{ secrets.CAPGO_PRIVATE_KEY }}"
Copier dans le presse-papiers
Gestion de version avec Semantic-releaseThe recommended way to handle versioning with Capgo is to set the version in your capacitor.config.ts La méthode recommandée pour gérer la version avec __CAPGO_KEEP_0__ est de définir la version dans votre package.json:
import pkg from './package.json'
const config: CapacitorConfig = { // ... other config plugins: { CapacitorUpdater: { version: pkg.version, } }}Cette approche vous permet :
- Utilisez semantic-release (ou tout autre outil) pour mettre à jour la
package.jsonversion - Construirez votre application avec la version mise à jour automatiquement incluse
- Téléchargez le bundle avec la version correcte
Votre flux de travail CI/CD ressemblerait à ceci :
- run: npm ci- run: npx semantic-release # Updates package.json version- run: npm run build # Builds with new version from capacitor.config- run: npx @capgo/cli@latest bundle upload --channel=production --apikey=${{ secrets.CAPGO_API_KEY }}Voici un exemple de .releaserc fichier de configuration pour semantic-release :
{ "branches": [ "main", { "name": "beta", "prerelease": true } ], "plugins": [ "@semantic-release/commit-analyzer", "@semantic-release/release-notes-generator", "@semantic-release/changelog", [ "@semantic-release/git", { "assets": ["CHANGELOG.md", "package.json"], "message": "chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}" } ] ]}Cette configuration fait les choses suivantes :
- Analyse les messages de commit pour déterminer le prochain numéro de version, en suivant la spécification Conventional Commits.
- Génère les notes de version en fonction des commits depuis la dernière version.
- Met à jour le
CHANGELOG.mdfichier avec les nouvelles notes de version. - Met à jour la
package.jsonversion, qui sera prise en compte par votre capacitor.config. - Commite les fichiers
CHANGELOG.md,package.json, ainsi que tout autre fichier modifié, vers le dépôt.
Assurez-vous d'avoir exécuté semantic-release avant de construire votre application afin que la version mise à jour de package.json soit incluse dans votre build via la capacitor.config.
Section intitulée « Résolution des problèmes »
Si vous rencontrez des problèmes avec votre intégration CI/CD __CAPGO_KEEP_0__, voici quelques éléments à vérifier :Si vous rencontrez des problèmes avec votre intégration CI/CD Capgo, voici quelques éléments à vérifier :
-
API clé: Assurez-vous que votre clé API est valide et dispose des autorisations nécessaires. Si vous utilisez une variable d'environnement, vérifiez que celle-ci est correctement définie.
-
CLI version: Assurez-vous d'utiliser la dernière version du Capgo CLI. Les versions plus anciennes peuvent présenter des problèmes de compatibilité ou manquer certaines fonctionnalités.
-
Fichiers de build: Confirmez que votre build web génère les fichiers de sortie attendus. Le Capgo CLI nécessite un build web valide pour créer un bundle.
-
Connexion réseau: Vérifiez que votre environnement CI/CD dispose d'accès au réseau vers les serveurs Capgo. Des problèmes de pare-feu ou de proxy peuvent parfois entraver la connexion.
uploadcommande
Si vous rencontrez toujours des difficultés, contactez le support Capgo pour obtenir de l'aide. Ils peuvent vous aider à résoudre les problèmes liés à votre configuration spécifique.
Conclusion
Section intitulée « Conclusion »Intégrer Capgo dans votre pipeline CI/CD avec une gestion de version appropriée peut considérablement simplifier votre flux de développement. En automatisant vos déploiements et vos versions à travers l'approche capacitor.config, vous pouvez livrer des mises à jour plus rapidement et avec plus de confiance.
La méthode recommandée consiste à définir la version dans votre capacitor.config.ts fichier et à utiliser semantic-release pour mettre à jour package.json ce qui fournit un processus de déploiement robuste et fiable qui vous permet de vous concentrer sur la création de grandes fonctionnalités plutôt que de vous soucier des étapes de libération manuelles.
Pour plus de détails sur les commandes et les options Capgo CLI et sur les options, consultez la documentation de référence CLI. Et pour une plongée plus profonde dans la configuration de semantic-release, voir les docs de semantic-release.
Joyeux déploiement !
Continuez de l'intégration CI/CD
Section intitulée “Continuez de l'intégration CI/CD”Si vous utilisez Intégration CI/CD pour planifier l'automatisation CI/CD, connectez-le à Capgo Intégration CI/CD pour le flux de travail du produit dans Capgo Intégration CI/CD, Capgo Rendus natifs pour le flux de travail du produit dans Capgo Rendus natifs, Capgo Intégrations pour le flux de travail du produit dans Capgo Intégrations, GitHub Intégration d'actions pour le détail d'implémentation dans GitHub Intégration d'actions, et Intégration CI/CD de GitLab pour le détail d'implémentation dans Intégration CI/CD de GitLab.