Intégration CI/CD
Copiez une commande de configuration avec les étapes d'installation et le guide markdown complet pour ce plugin.
L'intégration de Capgo dans votre pipeline CI/CD vous permet de mettre en œuvre automatiquement le processus de construction et de déploiement de mises à jour de votre application. En exploitant les avantages de Capgo et CLI ainsi que semantic-release, vous pouvez vous assurer de déploiements cohérents et fiables et permettre une itération rapide.
Avantages de l'intégration CI/CD
Section intitulée “Avantages de l'intégration CI/CD”-
Automatisation: Plus aucune étape manuelle 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.
-
Consistance: Chaque déploiement suit le même ensemble d'étapes, garantissant un processus prévisible et répétable. C'est particulièrement précieux lorsque vous avez plusieurs membres d'équipe contribuant code.
-
Itérations plus rapides: Avec des déploiements automatisés, vous pouvez envoyer des mises à jour plus fréquemment et avec confiance. Plus besoin d'attendre les approbations de QA ou de libération manuelles.
Capgo CLI
Section intitulée “Capgo CLI”La clé de l'intégration de Capgo dans votre flux de travail CI/CD est le Capgo CLI. Il fournit des commandes pour la mise à jour des versions de bundle, la gestion des canaux et plus encore.
La commande la plus importante pour l'intégration CI/CD est 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 le contenu de la clé privée directement (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 l'encryption”Pour les environnements CI/CD, il est recommandé de stocker votre clé privée comme une variable d'environnement plutôt qu'en fichier.
-
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-papiers.
-
Ajoutez-le à votre environnement CI/CD :
- GitHub Actions: Ajouter
CAPGO_PRIVATE_KEYà vos secrets de votre référentiel - GitLab CI: Ajoutez-le comme une 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
- 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 drapeau permet de passer le contenu de la clé privée directement sous forme de chaîne, 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 dernière mise à jour web vers le canal spécifié. Vous allez généralement exécuter cette commande en tant que dernier étape de votre pipeline CI/CD, après que votre mise à jour web ait été exécutée avec succès.
Configurer Capgo dans votre pipeline CI/CD
Section intitulée « Configurer 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 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 commettez 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 :\n 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 l'étape après votre build web
uploadétape après votre build webAssurez-vous que l'étape se déroule après que votre build web ait été exécuté avec succès. Cela vous garantit toujours de déployer votre dernière __CAPGO_KEEP_0__.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:\nupload.yml 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 }}"
Gestion de version avec Semantic-release
La gestion de version recommandée avec __CAPGO_KEEP_0__ consiste à définir la version dans votre fichier en l'important depuisThe recommended way to handle versioning with Capgo is to set the version in your capacitor.config.ts Cette approche vous permet : package.json:
import pkg from './package.json'
const config: CapacitorConfig = { // ... other config plugins: { CapacitorUpdater: { version: pkg.version, } }}Copier dans le presse-papiers
- Utilisez semantic-release (ou tout autre outil) pour mettre à jour la
package.json__CAPGO_KEEP_0__ - Construirez votre application avec la version mise à jour automatiquement incluse
- Envoyez 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 fichier de configuration pour semantic-release : .releaserc Copier dans le presse-papiers
{ "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}" } ] ]}Analyse les messages de commit pour déterminer le prochain numéro de version, en suivant la spécification Conventional Commits.
- Génère des notes de version basées sur les commits depuis la dernière version.
- Copier dans le presse-papiers
- Met à jour
CHANGELOG.mdLe fichier avec les nouvelles notes de version. - Met à jour
package.jsonla version, qui sera prise en compte par votre capacitor.config. - Commite les fichiers mis à jour, ainsi que tout autre fichier modifié, vers le dépôt.
CHANGELOG.md,package.jsonAssurez-vous d'exécuter semantic-release avant de construire votre application afin que la version mise à jour de __CAPGO_KEEP_0__ soit incluse dans votre build via la __CAPGO_KEEP_0__.config.
Résolution des problèmes package.json is included in your build through the capacitor.config.
Si vous rencontrez des problèmes avec votre intégration CI/CD de __CAPGO_KEEP_0__, voici quelques choses à vérifier :
__CAPGO_KEEP_0__ cléCapgo key
-
API key: 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 de la Capgo CLI. Les versions plus anciennes peuvent présenter des problèmes de compatibilité ou manquer certaines fonctionnalités.
-
Artéfacts de construction: 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 a accès au réseau pour se connecter aux serveurs Capgo. Des problèmes de pare-feu ou de proxy peuvent parfois entraver la communication.
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égration de 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 en versionnant à travers l'approche capacitor.config, vous pouvez déployer 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 cette approche offre 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 d'informations sur les commandes et les options Capgo CLI et sur les détails de configuration de semantic-release, consultez les CLI documentation et les docs de semantic-release.
Bonne chance avec le déploiement !