Questa guida si concentra sul CI di GitLab, ma puoi adattarlo con un piccolo aggiustamento a qualsiasi altro piattaforma CI/CD.
Premessa
Assicurati di aver aggiunto la tua app prima a Capgo, questa guida si concentra solo sulla fase di caricamento
Convenzione di commit
In primo luogo, è necessario iniziare a seguire la convenzione di commit commessi convenzionali ` questo aiuterà gli strumenti a capire come aggiornare il numero di versione, ci vuole solo 5 minuti per impararlo.

GitLab CI per tag
Successivamente, è necessario creare il primo file GitLab per automatizzare la creazione di tag.
Crea un file in questo percorso: .github/workflows/bump_version.yml
con questo contenuto:
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@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
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
Ciò rilascerà un tag per ogni commit nella tua branch principale. E aggiungerà un'entry di changelog per ogni commit nella branch principale in CHANGELOG.md.
Non preoccuparti se non hai questo file, verrà creato per te.
Per far funzionare tutto, crea un TOKEN DI ACCESSO PERSONALE e aggiungilo alle tue variabili di GitLab CI/CD come PERSONAL_ACCESS_TOKEN.
Questo è necessario per consentire al CI di commit il changelog.
Quando crei il token, scegli l'expiration come never e lo scope come repo.
Infine, per consentire al tool di capire dove è salvato il tuo versione, devi creare il file .cz.toml alla radice del tuo repository.
E aggiungi questo all'interno:
[tool.commitizen]
name = "cz_conventional_commits"
tag_format = "$major.$minor.$patch$prerelease"
version = "0.11.5"
version_files = [
"package.json:version",
".cz.toml"
]
Imposta la versione in questo file come la stessa che hai nel tuo package.json file.
Ciò è necessario solo la prima volta, poi gli strumenti lo terranno aggiornato.
Puoi ora commitare entrambi i file e vedere comparire il tuo primo tag in GitHub!
GitHub azioni per la build
Creare un file in questo percorso: .github/workflows/build.yml
con questo contenuto:
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 run build
env: # Remove both lines if you don't need it
FIREBASE_CONFIG: ${{ secrets.FIREBASE_CONFIG }} # Example 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
Questo installerà e costruirà la tua dipendenza prima di inviarla a Capgo.
Se il tuo comando per la costruzione è diverso, puoi cambiarlo nel build_code passaggio.
Per far funzionare questo, devi ottenere la tua chiave API per Capgo, aggiungerla nel segreto del tuo repository GitHub come CAPGO_TOKEN.
Ora puoi commitare entrambi i file e vedere comparire il tuo primo tag in GitHub!
L'aggiunta del commit genererà un nuovo build per il canale di produzione.
Devi aggiungere i tuoi test nel passaggio di costruzione per assicurarti che code funzioni correttamente.
Vai al tuo dashboard Capgo e controlla il tuo build che è appena apparso, ora hai il tuo sistema CI/CD.
Se desiderate che tutti i vostri utenti ricevano l'aggiornamento non appena è disponibile, andate nel vostro canale e impostatelo su public.