Aller directement au contenu

Intégration CI/CD

En intégrant Capgo à votre pipeline CI/CD, vous pouvez automatiser pleinement 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 fiables et cohérents et permettre une itération rapide.

  • L'automatisation: Pas plus de démarches 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.

  • 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.

  • Révisions plus rapides: Avec des déploiements automatisés, vous pouvez livrer des mises à jour plus fréquemment et avec confiance. Pas plus d'attente pour les tests de qualité ou les approbations de lancement.

La clé de l'intégration de Capgo dans votre flux de travail CI/CD est Capgo CLI.

L'importante commande pour l'intégration CI/CD est bundle upload:

Fenêtre de terminal
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 le chemin d'accès d'un fichier 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 le contenu de la clé privée directement (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 le chiffrement

Section intitulée « Configuration des variables d'environnement pour le chiffrement »

Dans 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
    • Secrets de GitLab CI: Ajoutez-le comme une variable masquée dans vos paramètres de projet
    • CircleCI: Ajoutez-le comme une variable d'environnement dans vos paramètres de projet
    • Jenkins: Ajoutez-le comme un texte de credenciaux secrets
  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 sous forme de chaîne, ce qui est parfait pour les variables d'environnement dans les pipelines CI/CD où vous ne voulez pas créer des 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 cela comme dernier étape de votre pipeline CI/CD, après que votre mise à jour web ait été exécutée avec succès.

Configuration de Capgo dans votre pipeline CI/CD

Section titled “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 :

  1. Générez une clé API : Connectez-vous à l'interface de gestion 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 votre repository !

  2. Configurez le 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 }}
    \n Remplacez Production par le canal que vous souhaitez déployer vers, ${{ secrets.CAPGO_API_KEY }} avec 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 webAssurez-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-papier

Gestion de version avec Semantic-release

La manière recommandée de gérer la version avec Capgo est de définir la version dans votre capacitor.config.ts fichier en l'important à partir de package.json:

import pkg from './package.json'
const config: CapacitorConfig = {
// ... other config
plugins: {
CapacitorUpdater: {
version: pkg.version,
}
}
}

Cette approche vous permet de :

  1. Utiliser semantic-release (ou tout autre outil) pour mettre à jour le package.json version
  2. Construire votre application avec la version mise à jour automatiquement incluse
  3. Télécharger 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 .releaserc de 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 des notes de version basées sur les commits depuis la dernière version.
  3. Mise à jour du CHANGELOG.md fichier avec les nouvelles notes de version.
  4. Mise à jour du package.json numéro de version, qui sera pris en compte par votre capacitor.config.
  5. Commite les fichiers CHANGELOG.md, package.jsonet 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 à travers le capacitor.config.

Section intitulée « Résolution des problèmes »

Section intitulée « Résolution des problèmes »

If vous rencontrez des problèmes avec votre Capgo intégration CI/CD, voici quelques choses à vérifier :

  • API clé: Assurez-vous que votre API clé 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 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.

L'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 via l'approche capacitor.config, vous pouvez livrer des mises à jour plus rapidement et avec plus de confiance.

L'approche recommandée consistant à définir la version dans votre capacitor.config.ts fichier et à utiliser semantic-release pour mettre à jour package.json 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, consultez la CLI documentationEt pour une plongée plus profonde dans la configuration de semantic-release, voir les docs semantic-release.

Joyeux déploiement !

Si vous utilisez Intégration CI/CD pour planifier l'automatisation CI/CD, connectez-le avec Capgo CI/CD pour le flux de travail du produit dans Capgo CI/CD, Capgo Builds natifs pour le flux de travail du produit dans Capgo Builds natifs, Capgo Intégrations pour le flux de travail du produit dans Capgo Intégrations, GitHub Intégration d'actions pour les détails d'implémentation dans GitHub Intégration d'actions, et Intégration CI/CD de GitLab pour les détails d'implémentation dans l'intégration GitLab CI/CD.