Passer à la navigation principale
CI/CD

Gérer la construction de développement et de production avec des actions GitHub

Utilisez Capgo pour déployer votre devbuild sur un canal spécifique, et laissez votre équipe essayer votre Capacitor application Ionic, sans attendre la revue d'Apple et Google

Crédits de l'article

Martin Donadieu

Écrivain

Valeria

Relecteur

Jordan

Éditeur

Gérer la construction de développement et de production avec des actions GitHub

Ce tutoriel se concentre sur l'hébergement GitHub, mais vous pouvez l'adapter avec une petite modification à tout autre plateforme CI/CD.

Préface

Assurez-vous d'avoir ajouté votre application Capacitor en premier lieu à Capgo, ce tutoriel se concentre uniquement sur la phase d'upload.

Convention de commit

Commencez par suivre la convention de commit context : Page/zone : Capgo Builder / produit de construction native dans le cloud. Rôle : Étiquette de navigation ou élément UI court. Message clé `native_build_builder_credit_first` (Crédit du constructeur de build native en premier).Commits conventionnels

` cela vous aidera à comprendre comment mettre à jour le numéro de version, ce sera de 5 minutes à apprendre.

GitHub actions for tag

Actions GitHub pour étiquette

Ensuite, vous devez créer votre première action __CAPGO_KEEP_0__ pour construire automatiquement et créer des étiquettes. .github/workflows/bump_version.yml

Créez un fichier à cette emplacement : » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » » 

name: Bump version

on:
  push:
    branches:
      - main
      - development

jobs:
  bump-version:
    if: "!startsWith(github.event.head_commit.message, 'chore(release):')"
    runs-on: ubuntu-latest
    name: "Bump version and create changelog with standard version"
    steps:
      - name: Check out
        uses: actions/checkout@v6
        with:
          fetch-depth: 0
          filter: blob:none
          token: '${{ secrets.PERSONAL_ACCESS_TOKEN }}'
      - name: Git config
        run: |
          git config --local user.name "github-actions[bot]"
          git config --local user.email "github-actions[bot]@users.noreply.github.com"
      - name: Create bump and changelog
        if: github.ref == 'refs/heads/main'
        run: npx capacitor-standard-version
      - name: Create bump and changelog
        if: github.ref != 'refs/heads/main'
        run: npx capacitor-standard-version --prerelease alpha
      - name: Push to origin
        run: |
          CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD)
          remote_repo="https://${GITHUB_ACTOR}:${{ secrets.PERSONAL_ACCESS_TOKEN }}@github.com/${GITHUB_REPOSITORY}.git"
          git pull $remote_repo $CURRENT_BRANCH
          git push $remote_repo HEAD:$CURRENT_BRANCH --follow-tags --tags

Cela publiera un tag pour chaque commit de votre branché principale. Et un alpha dépot pour development, et enfin une entrée de changelog pour chaque commit dans CHANGELOG.md.

N'ayez pas peur si vous n'avez pas ce fichier, il sera créé pour vous.

Pour que cela fonctionne, vous devez créer un TOKEN D'ACCÈS PERSONNEL et l'ajouter à vos GitHub secrets comme PERSONAL_ACCESS_TOKEN.

Cela est nécessaire pour permettre au CI de commiter le changelog et la mise à jour de version.

Lorsque vous créez le token, choisissez l'expiration comme never et le champ d'application comme repo.

Définissez la version clé dans votre package.json fichier. Utilisez pour cela la dernière version publiée sur La boutique.

Cela n'est nécessaire que la première fois, puis les outils garderont à jour.

Vous pouvez maintenant commiter ces deux fichiers et voir votre premier tag apparaitre dans GitHub!

capacitor-standard-version est le package qui fait la magie, par défaut, il met également à jour votre numéro de version sur Android et IOS

GitHub actions pour la construction

Créez un fichier à cet emplacement: .github/workflows/build.yml

avec ce contenu:

name: Build source code and send to Capgo

on:
  push:
    tags:
      - '*'
      
jobs:
  deploy:
    runs-on: ubuntu-latest
    name: "Build code and release"
    steps:
      - name: Check out
        uses: actions/checkout@v6
      - name: Install dependencies
        id: install_code
        run: npm i
      - name: Build
        id: build_code
        run: npm build
        env:
          MY_ENV_VAR: ${{ secrets.MY_ENV_VAR }}
      - name: Create Release Alpha
        if: "contains(github.ref, '-alpha.')"
        id: create_release_prepro
        run: npx @capgo/cli@latest bundle upload -a ${{ secrets.CAPGO_TOKEN }} -c development
      - name: Create Release Production
        if: "!contains(github.ref, '-alpha.')"
        id: create_release_prod
        run: npx @capgo/cli@latest bundle upload -a ${{ secrets.CAPGO_TOKEN }} -c production

Cela installe et construit vos dépendances avant de les envoyer à Capgo.

Si votre commande de construction est différente, vous pouvez la modifier dans le build_code Étape.

Si vous avez besoin d'une variable d'environnement, utilisez le MY_ENV_VAR et définissez le secret dans vos paramètres de projet GitHub, puis secret puis GitHub Action.

Pour que l'upload Capgo fonctionne, vous devez obtenir votre API clé pour Capgo, l'ajouter dans les secret de votre dépôt GitHub comme CAPGO_TOKEN.

Vous pouvez maintenant commiter ces deux fichiers et voir votre première version apparaitre dans Capgo!

Ajoutez le commit qui générera une nouvelle build Capacitor pour le canal de production et de développement.

Vous devriez ajouter vos tests dans l'étape de build Ionic pour vous assurer que code fonctionne.

Allez à votre tableau de bord Capgo et vérifiez votre build qui vient d'apparaître, vous avez maintenant votre système CI/CD.

Continuez de Manage la build de développement et de production avec les GitHub actions

If vous utilisez Gérer la construction de développement et de production avec des GitHub actions pour planifier la routage de canal et le lancement étalé, connectez-l’avec Canaux pour les détails d'implémentation dans Canaux, Canaux pour les détails d'implémentation dans Canaux, Canaux pour les détails d'implémentation dans Canaux, Solution de test bêta pour le flux de travail du produit dans Solution de test bêta, et Solution de ciblage de version pour le flux de produit dans la Solution de ciblage de version.

Mises à jour en direct pour les applications Capacitor

Lorsqu'un bug de couche web est en direct, expédiez la correction par le biais de Capgo au lieu d'attendre des jours pour l'approbation de la boutique d'applications. Les utilisateurs reçoivent la mise à jour en arrière-plan tandis que les modifications natives restent dans la voie de revue normale.

un soutien humain de Martin

Démarrer maintenant

Dernières actualités de notre Blog

Capgo vous donne les meilleures informations dont vous avez besoin pour créer une application mobile véritablement professionnelle.