Passer au contenu principal
CI/CD

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

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

Martin Donadieu

Martin Donadieu

Spécialiste du contenu

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

Cet article de tutoriel se concentre sur l'hébergement de GitHub, mais vous pouvez l'adapter avec un petit ajustement à tout autre plateforme CI/CD.

Avant-propos

Assurez-vous d'avoir ajouté votre application Capacitor au Capgo en premier lieu, car cet article se concentre uniquement sur la phase d'upload

Convention de commit

Commencez par suivre la convention de commit commits conventionnelsCela aidera l'outil à comprendre comment mettre à jour le numéro de version, cela prend 5 minutes pour l'apprendre.

Commits conventionnels

GitHub actions pour tag

Ensuite, vous devez créer votre première action GitHub pour construire automatiquement et créer des tags.

Créez un fichier à ce chemin : .github/workflows/bump_version.yml

avec ce contenu :

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 release 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 vous sera créé.

Pour que cela fonctionne, vous devez créer un PERSONAL ACCESS TOKEN et ajoutez-le à votre GitHub secrets comme PERSONAL_ACCESS_TOKEN.

Il est nécessaire de permettre au CI de commettre le changelog et la mise à jour de version.

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

Définissez le version clé dans votre package.json fichier. Utilisez à cet effet la dernière version publiée dans l'App Store.

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

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

capacitor-standard-version c'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 votre dépendance avant de l'envoyer à Capgo.

Si votre commande de construction est différente, vous pouvez la modifier dans l'étape. build_code Si vous avez besoin d'une variable d'environnement, utilisez le

et définissez le MY_ENV_VAR dans vos paramètres de projet __CAPGO_KEEP_0__, puis secret puis __CAPGO_KEEP_1__ Action. secret Pour que GitHub fonctionne, vous avez besoin de votre GitHub clé pour __CAPGO_KEEP_2__, ajoutez-la dans le

To make Capgo upload work, you need to get your API key for Capgo, add it in the secret of your GitHub repository Vous pouvez maintenant commiter ces deux fichiers et voir votre première version apparaitre dans __CAPGO_KEEP_0__! CAPGO_TOKEN.

L'ajout du commit générera une nouvelle Capgo build pour le canal de production et de développement.

Vous devriez ajouter vos tests dans l'étape de build Ionic pour être certain que votre Capacitor fonctionne.

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

Continuez de la même manière en gérant les builds de développement et de production avec les actions de Capgo

Keep going from Manage development and production build with GitHub actions

Gérez les builds de développement et de production avec les actions de __CAPGO_KEEP_0__ Manage development and production build with GitHub actions Canaux pour les détails d'implémentation dans Canaux, Canaux Vous pouvez maintenant commiter ces deux fichiers et voir votre première version apparaitre dans votre système __CAPGO_KEEP_0__. pour les détails d'implémentation dans les canaux, Les canaux pour les détails d'implémentation dans les canaux, Solution de test bêta pour le flux de travail du produit dans la Solution de test bêta, et Solution de ciblage de version pour le flux de travail du produit dans la Solution de ciblage de version.

Mises à jour en direct pour les applications Capacitor

Lorsqu'un bug de la 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 le chemin de revue normal.

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