Aller directement au contenu

Intégration CI/CD

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.

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:

Section intitulée « __CAPGO_KEEP_0__ __CAPGO_KEEP_1__ »
npx @capgo/cli@latest bundle upload --channel Production --apikey YOUR_API_KEY

Si vous utilisez l'encryption, vous devez le fournir d'une des manières suivantes :

En utilisant un chemin de fichier de clé privée :

Fenêtre de terminal
npx @capgo/cli@latest bundle upload --channel Production --apikey YOUR_API_KEY --key-v2 PRIVATE_KEY_PATH

En utilisant directement le contenu de la clé privée (recommandé pour CI/CD) :

Fenêtre de terminal
npx @capgo/cli@latest bundle upload --channel Production --apikey YOUR_API_KEY --key-data-v2 PRIVATE_KEY_CONTENT

En utilisant les variables d'environnement (meilleure pratique pour CI/CD) :

Fenêtre de terminal
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 :

  1. Obtenez le contenu de votre clé privée :

    Fenêtre de terminal
    cat .capgo_key_v2 | pbcopy

    Cela copie le contenu de la clé dans votre presse-papier.

  2. 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
  3. 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.

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 :

  1. 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 !

  2. Configurez la bundle upload commande: Ajoutez une étape à votre configuration CI/CD qui exécute la bundle upload commande avec les arguments appropriés :

    upload.yml
    - run: npx @capgo/cli@latest bundle upload --channel=production --apikey=${{ secrets.CAPGO_API_KEY }}
    Remplacez Production par 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.

  3. Ajoutez le upload étape après votre build web : Assurez-vous que l' upload step 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:\n

    Voici un exemple de configuration pour __CAPGO_KEEP_1__ Actions:
    name: Deploy to Capgo
    on:
    push:
    branches: [main]
    jobs:
    deploy:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v6
    - uses: actions/setup-node@v6
    with:
    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-release

The 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 :

  1. Utilisez semantic-release (ou tout autre outil) pour mettre à jour la package.json version
  2. Construirez votre application avec la version mise à jour automatiquement incluse
  3. 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 :

  1. Analyse les messages de commit pour déterminer le prochain numéro de version, en suivant la spécification Conventional Commits.
  2. Génère les notes de version en fonction des commits depuis la dernière version.
  3. Met à jour le CHANGELOG.md fichier avec les nouvelles notes de version.
  4. Met à jour la package.json version, qui sera prise en compte par votre capacitor.config.
  5. 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.

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. upload commande

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.

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 !

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.