Ce tutoriel se concentre sur GitLab CI, mais vous pouvez l’adapter avec un petit ajustement à n’importe quelle autre plateforme CI/CD.
Préface
Assurez-vous d’abord d’avoir ajouté votre application à Capgo, ce tutoriel se concentre uniquement sur la phase de téléchargement.
Convention de commit
Tout d’abord, vous devez commencer à suivre la convention de commit commits conventionnels ` cela aidera l’outil à comprendre comment mettre à jour le numéro de version, cela prend 5 minutes à apprendre.
GitLab CI pour tag
Ensuite, vous devez créer votre premier GitLab pour construire et créer automatiquement un tag.
Créez un fichier à ce chemin : .github/workflows/bump_version.yml
avec ce contenu :
name: Bump version
on: push: branches: - main
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@v4 with: fetch-depth: 0 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 run: npx capacitor-standard-version - 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 fera un tag pour chaque commit dans votre branche principale. Et ajoutera une entrée de changelog pour chaque commit dans la branche principale dans CHANGELOG.md
.
Ne vous inquiétez pas si vous n’avez pas ce fichier, il sera créé pour vous.
Pour que cela fonctionne, créez un PERSONAL_ACCESS dans votre secret GitHub en tant que PERSONAL_ACCESS_TOKEN
.
C’est nécessaire pour permettre à la CI de commettre le changelog.
Lorsque vous créez le token, choisissez l’expiration comme jamais
et la portée comme repo
.
Enfin, pour que l’outil comprenne où votre version est sauvegardée, vous devez créer le fichier .cz.toml
à la racine de votre dépôt.
Et ajoutez ceci à l’intérieur :
[tool.commitizen]name = "cz_conventional_commits"tag_format = "$major.$minor.$patch$prerelease"version = "0.11.5"version_files = [ "package.json:version", ".cz.toml"]
Définissez la version dans ce fichier comme celle que vous avez dans votre fichier package.json
.
Cela n’est nécessaire que la première fois, ensuite les outils le tiendront à jour.
Vous pouvez maintenant commettre ces deux fichiers et voir votre premier tag apparaître sur GitHub !
Actions GitHub pour la construction
Créez un fichier à ce chemin : .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@v4 - name: Install dependencies id: install_code run: npm i - name: Build id: build_code run: npm run build env: # Remove both lines if you don't need it FIREBASE_CONFIG: ${{ secrets.FIREBASE_CONFIG }} # Exemple of env var coming from a secret - name: Create Release id: create_release run: npx @capgo/cli@latest bundle upload -a ${{ secrets.CAPGO_TOKEN }} -c production
Cela installera et construira votre dépendance avant de l’envoyer à Capgo.
Si votre commande de construction est différente, vous pouvez la changer dans l’étape build_code
.
Pour que cela fonctionne, vous devez obtenir votre clé API pour Capgo, ajoutez-la dans le secret de votre dépôt GitHub en tant que CAPGO_TOKEN
.
Vous pouvez maintenant commettre ces deux fichiers et voir votre premier tag apparaître sur GitHub !
Ajouter le commit générera une nouvelle construction pour le canal de production.
Vous devriez ajouter vos tests dans l’étape de construction pour vous assurer que votre code fonctionne.
Allez sur votre tableau de bord Capgo et vérifiez votre construction qui vient d’apparaître, vous avez maintenant votre système CI/CD.
Si vous voulez que tous vos utilisateurs reçoivent la mise à jour dès qu’elle est disponible, allez sur votre canal et définissez-le sur public
.