Intégrations d'Actions de GitHub
Copiez un prompt de configuration avec les étapes d'installation et la guide markdown complet pour ce plugin.
Intégrez les mises à jour Capgo avec les GitHub Actions pour déployer automatiquement vos mises à jour d'applications chaque fois que vous publiez code modifications. Ce guide couvre la configuration des workflows de build automatique, de test et de déploiement à l'aide de la plateforme CI/CD puissante de GitHub.
Prerequisites
Section intitulée « Prérequis »Avant de configurer l'intégration des GitHub Actions, assurez-vous d'avoir :
- Un dépôt GitHub contenant le code source de votre application code
- Un compte Capgo avec une application configurée
- Node.js et npm/yarn configurés dans votre projet
- GitHub Actions activés pour votre dépôt
Configuration des secrets GitHub
Section intitulée « Configuration des secrets GitHub »Étape 1 : Configurer les secrets du dépôt
Étape 1 : Configurez les secrets de votre référentielConfigurez les secrets nécessaires dans votre repository GitHub.
- Naviguez vers votre GitHub répertoire
- Allez à Settings → Variables et secrets → Paramètres
- Click Nouveau secret de dépôt et ajoutez les éléments suivants :
| Nom du secret | Valeur |
|---|---|
CAPGO_TOKEN | Votre jeton Capgo API |
Déploiement de production simple
Section intitulée “Déploiement de Production Simple”Commencez par cette configuration de base qui déploie en production à chaque push vers la branche principale :
# Simple GitHub Actions Workflow for Capgo Live Updatesname: Deploy to Capgo
on: push: branches: - main
jobs: deploy: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v6
- name: Setup Node.js uses: actions/setup-node@v6 with: node-version: '24' cache: 'npm'
- name: Install, test and build run: | npm ci npm run test npm run build
- name: Deploy to Capgo run: | npm install -g @capgo/cli npx @capgo/cli bundle upload --channel production env: CAPGO_TOKEN: ${{ secrets.CAPGO_TOKEN }} # For encrypted uploads, add: --key-data-v2 "${{ secrets.CAPGO_PRIVATE_KEY }}"Configuration Avancée Multi-Canaux
Section intitulée “Configuration Avancée Multi-Canaux”Déploiements de Branches de Fonctionnalité
Section intitulée “Déploiements de Branches de Fonctionnalité”Déploie les branches de fonctionnalité dans des canaux temporaires pour les tests :
# Feature branch deploymentname: Deploy Feature Branch to Capgo
on: push: branches: - 'feature/**'
jobs: deploy-feature: runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 - uses: actions/setup-node@v6 with: node-version: '24' cache: 'npm'
- run: | npm ci npm run test npm run build
- name: Deploy to feature channel run: | CHANNEL_NAME=$(echo "${{ github.ref_name }}" | sed 's/[^a-zA-Z0-9]/-/g' | tr '[:upper:]' '[:lower:]') npm install -g @capgo/cli npx @capgo/cli channel add $CHANNEL_NAME --apikey ${{ secrets.CAPGO_TOKEN }} || true npx @capgo/cli bundle upload --apikey ${{ secrets.CAPGO_TOKEN }} --channel $CHANNEL_NAMEUtilisation de l'Encryption
Section intitulée “Utilisation de l'Encryption”Si vous utilisez Capgo’s fonction de chiffrement, vous devrez stocker votre clé privée de manière sécurisée dans votre environnement CI/CD.
Après Configurer les clés de chiffrement locales, ajoutez votre clé privée aux secrets de GitHub :
# Display your private key content (copy this output)cat .capgo_key_v2Ajoutez ce contenu en tant que CAPGO_PRIVATE_KEY dans les secrets de votre repository GitHub, puis utilisez-le dans vos workflows :
# Deploy with encryption- name: Deploy to Capgo with Encryption run: | npm install -g @capgo/cli npx @capgo/cli bundle upload --apikey ${{ secrets.CAPGO_TOKEN }} --key-data-v2 "${{ secrets.CAPGO_PRIVATE_KEY }}" --channel productionConfiguration Multi-Canal
Section titled “Multi-Channel Configuration”Voir la documentation détaillée sur la configuration et la gestion de plusieurs canaux de déploiement. Documentation des canaux.
Intégration complète avec développement, demandes de tirage et déploiements de production :
# Complete multi-environment workflowname: Deploy to Capgo
on: push: branches: [main, develop] pull_request: branches: [main, develop]
jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 - uses: actions/setup-node@v6 with: node-version: '24' cache: 'npm'
- run: | npm ci npm run test npm run build
- uses: actions/upload-artifact@v6 with: name: dist path: dist/
deploy-development: if: github.ref == 'refs/heads/develop' needs: build runs-on: ubuntu-latest environment: development steps: - uses: actions/setup-node@v6 with: node-version: '24'
- uses: actions/download-artifact@v4 with: name: dist path: dist/
- run: | npm install -g @capgo/cli npx @capgo/cli bundle upload --apikey ${{ secrets.CAPGO_TOKEN }} --channel development
deploy-pr: if: github.event_name == 'pull_request' needs: build runs-on: ubuntu-latest steps: - uses: actions/setup-node@v6 with: node-version: '24'
- uses: actions/download-artifact@v4 with: name: dist path: dist/
- name: Deploy to PR channel run: | CHANNEL_NAME="pr-${{ github.event.number }}" npm install -g @capgo/cli npx @capgo/cli channel add $CHANNEL_NAME --apikey ${{ secrets.CAPGO_TOKEN }} || true npx @capgo/cli bundle upload --apikey ${{ secrets.CAPGO_TOKEN }} --channel $CHANNEL_NAME
- name: Comment PR uses: actions/github-script@v7 with: script: | github.rest.issues.createComment({ issue_number: context.issue.number, owner: context.repo.owner, repo: context.repo.repo, body: `🚀 This PR has been deployed to Capgo channel: \`pr-${{ github.event.number }}\`\n\nTo test this update in your app, configure it to use this channel. [Learn how to configure channels →](/docs/live-updates/channels/#configuring-the-channel-in-your-app)` })
deploy-production: if: github.ref == 'refs/heads/main' needs: build runs-on: ubuntu-latest environment: production steps: - uses: actions/setup-node@v6 with: node-version: '24'
- uses: actions/download-artifact@v4 with: name: dist path: dist/
- run: | npm install -g @capgo/cli npx @capgo/cli bundle upload --apikey ${{ secrets.CAPGO_TOKEN }} --channel productionSupprimer les canaux de fonctionnalités
Section intitulée « Supprimer les canaux de fonctionnalités »Nettoyer automatiquement les canaux de fonctionnalités lorsque les branches sont supprimées :
name: Cleanup Feature Channels
on: delete:
jobs: cleanup: runs-on: ubuntu-latest if: github.event.ref_type == 'branch' && startsWith(github.event.ref, 'feature/') steps: - uses: actions/setup-node@v6 with: node-version: '24'
- name: Delete Capgo channel run: | CHANNEL_NAME=$(echo "${{ github.event.ref }}" | sed 's/[^a-zA-Z0-9]/-/g' | tr '[:upper:]' '[:lower:]') npm install -g @capgo/cli npx @capgo/cli channel delete $CHANNEL_NAME --apikey ${{ secrets.CAPGO_TOKEN }} || trueSécurité et meilleures pratiques
Section intitulée « Sécurité et meilleures pratiques »Règles de protection de l'environnement
Section intitulée « Règles de protection de l'environnement »Configurez les règles de protection de l'environnement dans GitHub :
- Allez à Paramètres → Environnements dans votre dépôt
- Créez des environnements :
development,staging,production - Pour l'environnement de production, ajoutez :
- Relecteurs obligatoires: Ajoutez des membres d'équipe qui doivent approuver les déploiements
- Délai d'attente: Ajoutez un délai avant le déploiement (facultatif)
- Branches de déploiement: Restrict à
mainbranch uniquement
Gestion des secrets sécurisée
Section intitulée « Gestion des secrets sécurisée »Use environment-specific secrets:
# Use different secrets per environmentdeploy-production: environment: production steps: - name: Deploy to Production run: | npx @capgo/cli bundle upload \ --apikey ${{ secrets.CAPGO_PROD_TOKEN }} \ --app ${{ secrets.CAPGO_PROD_APP_ID }} \ --channel productionSurveillance et notifications
Section intitulée « Surveillance et notifications »Intégration Slack
Section intitulée « Intégration Slack »Ajoutez des notifications Slack à votre flux de travail :
name: Deploy with Notifications
jobs: deploy: runs-on: ubuntu-latest steps: # ... deployment steps
- name: Notify Slack on Success if: success() uses: 8398a7/action-slack@v3 with: status: success text: '✅ Capgo deployment successful!' fields: repo,message,commit,author,action,eventName,ref,workflow env: SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
- name: Notify Slack on Failure if: failure() uses: 8398a7/action-slack@v3 with: status: failure text: '❌ Capgo deployment failed!' fields: repo,message,commit,author,action,eventName,ref,workflow env: SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}Intégration Discord
Section intitulée « Intégration Discord »Envoyer des notifications à Discord :
- name: Discord notification if: always() uses: Ilshidur/action-discord@master with: args: | Capgo deployment ${{ job.status }}! App: ${{ secrets.CAPGO_APP_ID }} Channel: ${{ github.ref_name }} Commit: ${{ github.sha }} env: DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }}Notifications par courriel
Section intitulée « Notifications par courriel »Configurer les notifications par courriel :
- name: Send email notification if: failure() uses: dawidd6/action-send-mail@v3 with: server_address: smtp.gmail.com server_port: 465 username: ${{ secrets.EMAIL_USERNAME }} password: ${{ secrets.EMAIL_PASSWORD }} subject: 'Capgo Deployment Failed - ${{ github.repository }}' to: team@yourcompany.com from: ci-cd@yourcompany.com body: | Deployment failed for ${{ github.repository }} Branch: ${{ github.ref_name }} Commit: ${{ github.sha }} Workflow: ${{ github.workflow }}Troubleshooting
Section intitulée « Résolution des problèmes »Débogage du workflow
Section intitulée « Débogage du workflow »Ajoutez des étapes de débogage pour résoudre les problèmes :
- name: Debug environment run: | echo "Node version: $(node --version)" echo "NPM version: $(npm --version)" echo "Working directory: $(pwd)" echo "Files in dist/: $(ls -la dist/ || echo 'No dist directory')" echo "Environment variables:" env | grep -E "(GITHUB_|CAPGO_)" | sort
- name: Test Capgo CLI run: | npx @capgo/cli --version npx @capgo/cli app debug --apikey ${{ secrets.CAPGO_TOKEN }} --app ${{ secrets.CAPGO_APP_ID }}Problèmes courants et solutions
Section intitulée « Problèmes courants et solutions »Flux de travail échoue avec « CAPGO_TOKEN non trouvé » :
- name: Verify secrets run: | if [ -z "${{ secrets.CAPGO_TOKEN }}" ]; then echo "ERROR: CAPGO_TOKEN secret is not set" exit 1 fi echo "CAPGO_TOKEN is set (length: ${#CAPGO_TOKEN})" env: CAPGO_TOKEN: ${{ secrets.CAPGO_TOKEN }}Artéfacts de construction non trouvés :
- name: Debug artifacts run: | echo "Checking for build artifacts..." ls -la dist/ || echo "No dist directory found" find . -name "*.js" -o -name "*.html" | head -10Problèmes de connectivité réseau :
- name: Test connectivity run: | ping -c 3 api.capgo.io || echo "Ping failed" curl -I https://api.capgo.io/health || echo "Health check failed"Flux de travail réutilisable
Section intitulée « Flux de travail réutilisable »Créez des workflows réutilisables pour une cohérence dans les projets :
name: Reusable Capgo Deploy
on: workflow_call: inputs: environment: required: true type: string channel: required: true type: string secrets: CAPGO_TOKEN: required: true CAPGO_APP_ID: required: true
jobs: deploy: runs-on: ubuntu-latest environment: ${{ inputs.environment }} steps: - uses: actions/checkout@v6
- name: Setup Node.js uses: actions/setup-node@v6 with: node-version: '24' cache: 'npm'
- name: Install and build run: | npm ci npm run build
- name: Deploy to Capgo run: | npm install -g @capgo/cli npx @capgo/cli bundle upload \ --apikey ${{ secrets.CAPGO_TOKEN }} \ --app ${{ secrets.CAPGO_APP_ID }} \ --channel ${{ inputs.channel }}Utilisez le workflow réutilisable :
name: Deploy App
on: push: branches: [main, develop]
jobs: deploy-dev: if: github.ref == 'refs/heads/develop' uses: ./.github/workflows/reusable-capgo-deploy.yml with: environment: development channel: development secrets: CAPGO_TOKEN: ${{ secrets.CAPGO_TOKEN }} CAPGO_APP_ID: ${{ secrets.CAPGO_APP_ID }}
deploy-prod: if: github.ref == 'refs/heads/main' uses: ./.github/workflows/reusable-capgo-deploy.yml with: environment: production channel: production secrets: CAPGO_TOKEN: ${{ secrets.CAPGO_TOKEN }} CAPGO_APP_ID: ${{ secrets.CAPGO_APP_ID }}Étapes suivantes
Section intitulée « Étapes suivantes »- En savoir plus sur Canaux pour gérer différents environnements de déploiement
- Découvrez Stockage personnalisé pour des scénarios de déploiement avancés
- Configurer Chiffrement pour des déploiements sécurisés
- Configurer Comportement de mise à jour personnaliser l'application des mises à jour
Avec l'intégration d'GitHub Actions, vous pouvez tirer parti des capacités puissantes de la plateforme CI/CD d'GitHub pour créer des workflows de déploiement sophistiqués avec des fonctionnalités de sécurité, de surveillance et de collaboration intégrées pour vos mises à jour Live d'Capgo.
Continuez d'ici l'intégration d'GitHub Actions
Titre de la section « Continuez d'ici l'intégration d'GitHub Actions »Si vous utilisez Intégrations d'actions GitHub pour planifier l'automatisation de CI/CD, connectez-l’avec Capgo CI/CD pour le flux de travail du produit dans Capgo CI/CD, Capgo Bâtiments natifs pour le flux de travail du produit dans Capgo Bâtiments natifs, Capgo Intégrations pour le flux de travail du produit dans Capgo Intégrations, Intégration CI/CD pour les détails d'implémentation dans Intégration CI/CD, et Intégration d'actions GitLab CI/CD pour les détails d'implémentation dans Intégration d'actions GitLab CI/CD.