Integrazione CI/CD
Copia un prompt di configurazione con i passaggi di installazione e la guida markdown completa per questo plugin.
Integrare Capgo nella tua pipeline CI/CD ti permette di automatizzare completamente il processo di build e deployment degli update della tua app. Sfruttando Capgo CLI e semantic-release, puoi garantire deployment consistenti e affidabili, accelerando i cicli di iterazione.
Vantaggi dell'integrazione CI/CD
Sezione intitolata “Vantaggi dell'integrazione CI/CD”-
Automazione: Niente più passaggi manuali o rischio di errori umani. L'intero processo di build, test e deployment può essere automatizzato end-to-end.
-
Coerenza: Ogni deployment segue lo stesso flusso, garantendo un processo prevedibile e ripetibile. Fondamentale quando più membri del team contribuiscono a code.
-
Iterazioni più rapide: Con i deployment automatizzati, puoi rilasciare aggiornamenti più spesso e con sicurezza. Niente più attese per QA manuali o approvazioni di rilascio.
Capgo CLI
Sezione intitolata “Capgo CLI”Il Capgo CLI è la chiave per integrare Capgo nel tuo workflow CI/CD. Offre comandi per pushare nuove versioni di bundle, gestire i channel e molto altro.
Il comando più importante per l'integrazione CI/CD è bundle upload:
npx @capgo/cli@latest bundle upload --channel Production --apikey YOUR_API_KEYSe utilizzi la crittografia, puoi fornirla in uno di questi modi:
Indicando il percorso del file della chiave privata:
npx @capgo/cli@latest bundle upload --channel Production --apikey YOUR_API_KEY --key-v2 PRIVATE_KEY_PATHInserendo direttamente il contenuto della chiave privata (consigliato per CI/CD):
npx @capgo/cli@latest bundle upload --channel Production --apikey YOUR_API_KEY --key-data-v2 PRIVATE_KEY_CONTENTUtilizzando le variabili d'ambiente (best practice per CI/CD):
npx @capgo/cli@latest bundle upload --channel Production --apikey YOUR_API_KEY --key-data-v2 "$CAPGO_PRIVATE_KEY"Configurazione delle variabili d'ambiente per la crittografia
Sezione intitolata “Configurazione delle variabili d'ambiente per la crittografia”Per gli ambienti CI/CD, si consiglia di salvare la chiave privata come variabile d'ambiente invece che in un file. Ecco come configurarla:
-
Ottieni il contenuto della tua chiave privata:
Finestra del terminale cat .capgo_key_v2 | pbcopyQuesto copia il contenuto della chiave negli appunti.
-
Aggiungila al tuo ambiente CI/CD:
- Azioni GitHub: Aggiungi
CAPGO_PRIVATE_KEYai segreti del repository - GitLab CI: Aggiungilo come variabile mascherata nelle impostazioni del progetto
- CircleCI: Aggiungilo come variabile d'ambiente nelle impostazioni del progetto
- Jenkins: Aggiungilo come credenziale di tipo secret text
- Azioni GitHub: Aggiungi
-
Usalo nella tua pipeline:
- run: npx @capgo/cli@latest bundle upload --channel=production --apikey=${{ secrets.CAPGO_API_KEY }} --key-data-v2 "${{ secrets.CAPGO_PRIVATE_KEY }}"
Nota: Il --key-data-v2 flag ti permette di passare il contenuto della chiave privata direttamente come stringa, ideale per le variabili d'ambiente nelle pipeline CI/CD dove non vuoi creare file temporanei.
Questo comando effettua l'upload dell'attuale web build sul canale specificato. Solitamente viene eseguito come ultimo step della pipeline CI/CD, dopo il completamento della web build.
Configurazione di Capgo nella tua pipeline CI/CD
Sezione intitolata “Configurazione di Capgo nella tua pipeline CI/CD”Sebbene i passaggi esatti varino in base allo strumento CI/CD scelto, il processo generale per integrare Capgo è il seguente:
-
Genera una chiave API: Accedi alla dashboard di Capgo e crea una nuova chiave API. Questa chiave servirà per autenticare CLI nel tuo ambiente CI/CD. Mantienila segreta e non committarla mai nel repository!
-
Configura il
bundle uploadcomando: Aggiungi uno step alla tua configurazione CI/CD che esegua ilbundle uploadcomando con gli argomenti appropriati:\n Sostituisciupload.yml - run: npx @capgo/cli@latest bundle upload --channel=production --apikey=${{ secrets.CAPGO_API_KEY }}Productioncon il channel su cui vuoi fare il deploy,${{ secrets.CAPGO_API_KEY }}con la variabile d'ambiente che contiene la tua chiave API, e aggiungi--key-data-v2 "${{ secrets.CAPGO_PRIVATE_KEY }}"se utilizzi la crittografia. -
Aggiungi lo
uploadstep dopo il tuo web build: Assicurati che louploadstep avvenga dopo il completamento del web build. Questo garantisce che tu stia sempre distribuendo l'ultima versione di code.\nEcco un esempio di configurazione per GitHub Actions:\nupload.yml name: Deploy to Capgoon:push:branches: [main]jobs:deploy:runs-on: ubuntu-lateststeps:- uses: actions/checkout@v6- uses: actions/setup-node@v6with:node-version: '24'- run: npm ci- run: npm run build- run: npm install -g @capgo/cli- run: npx @capgo/cli@latest bundle upload --channel=production --apikey=${{ secrets.CAPGO_API_KEY }} --key-data-v2 "${{ secrets.CAPGO_PRIVATE_KEY }}"
Gestione delle versioni con Semantic-release
Sezione intitolata “Version Management with Semantic-release”Il modo consigliato per gestire il versionamento con Capgo è impostare la versione nel tuo capacitor.config.ts file importandola da package.json:
import pkg from './package.json'
const config: CapacitorConfig = { // ... other config plugins: { CapacitorUpdater: { version: pkg.version, } }}Questo approccio ti permette di:
- Usare semantic-release (o altri tool) per aggiornare la
package.jsonversione - Buildare l'app includendo automaticamente la nuova versione
- Fare l'upload del bundle con la versione corretta
Il tuo workflow CI/CD sarà simile a questo:
- run: npm ci- run: npx semantic-release # Updates package.json version- run: npm run build # Builds with new version from capacitor.config- run: npx @capgo/cli@latest bundle upload --channel=production --apikey=${{ secrets.CAPGO_API_KEY }}Ecco un esempio di .releaserc file di configurazione per semantic-release:
{ "branches": [ "main", { "name": "beta", "prerelease": true } ], "plugins": [ "@semantic-release/commit-analyzer", "@semantic-release/release-notes-generator", "@semantic-release/changelog", [ "@semantic-release/git", { "assets": ["CHANGELOG.md", "package.json"], "message": "chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}" } ] ]}Questa configurazione esegue quanto segue:
- Analizza i commit per determinare il prossimo numero di versione, seguendo lo spec Conventional Commits.
- Genera le release notes basandosi sui commit effettuati dall'ultimo rilascio.
- Aggiorna la
CHANGELOG.mdcon le nuove release notes. - Aggiorna la
package.jsonversione, che verrà rilevata dalla tua capacitor.config. - Effettua il commit della
CHANGELOG.md,package.jsonaggiornata e di tutti gli altri file modificati nel repository.
Assicurati di eseguire semantic-release prima di buildare l'app, così la nuova versione di package.json verrà inclusa nel build tramite la capacitor.config.
Auto-bump quando la versione locale è già su Capgo
Sezione intitolata “Auto-bump quando la versione locale è già su Capgo”I nomi dei bundle devono essere univoci (le versioni eliminate occupano comunque il nome). Se la CI continua a caricare la stessa package.json version, l'upload fallisce. Meglio incrementare package.json (ad esempio con semantic-release). Se non è praticabile, lascia che CLI scelga il prossimo semver libero dal bundle collegato al canale, o l'ultima versione remota dell'app:
npx @capgo/cli@latest bundle upload --channel=production --auto-bumpnpx @capgo/cli@latest bundle upload --auto-bump majornpx @capgo/cli@latest bundle upload --auto-bump minor # default when the flag has no valuenpx @capgo/cli@latest bundle upload --auto-bump patch # alias: fixnpx @capgo/cli@latest bundle upload --auto-bump metadatanpx @capgo/cli@latest bundle upload --channel=production --auto-bump ai--auto-bump ai usa Capgo Cloudflare Workers AI per confrontare i file del bundle locale con i file delta del precedente Capgo/channel, sceglie major | minor | patch | metadatae stampa una breve motivazione. In assenza di una versione Capgo precedente, l'AI viene saltata e l'incremento sarà patch.
Non combinare --auto-bump con --bundle / -b. Vedi la bundle upload reference per l'elenco completo delle opzioni.
Risoluzione problemi
Sezione intitolata “Troubleshooting”Se riscontri problemi con l'integrazione CI/CD di Capgo, ecco alcune cose da controllare:
-
Chiave API: Assicurati che la tua chiave API sia valida e abbia i permessi necessari. Se usi una variabile d'ambiente, verifica che sia impostata correttamente.
-
Versione CLI: Assicurati di usare l'ultima versione di Capgo CLI. Le versioni precedenti potrebbero avere problemi di compatibilità o mancare di alcune feature.
-
Artifact di build: Conferma che la tua web build stia generando i file di output previsti. La Capgo CLI necessita di una web build valida per creare un bundle.
-
Connettività di rete: Verifica che il tuo ambiente CI/CD abbia l'accesso alla rete verso i server Capgo. Firewall o proxy potrebbero talvolta interferire con la
uploadcomando.
Se hai ancora problemi, contatta il supporto di Capgo per assistenza. Possono aiutarti a risolvere eventuali problemi con la tua configurazione specifica.
Conclusione
Sezione intitolata “Conclusione”Integrare Capgo nella tua pipeline CI/CD con una gestione corretta delle versioni può semplificare notevolmente il tuo workflow di sviluppo. Automatizzando i deploy e il versioning tramite l'approccio capacitor.config, potrai rilasciare aggiornamenti più rapidamente e con maggiore sicurezza.
L'approccio consigliato di impostare la versione nel tuo capacitor.config.ts file e usare semantic-release per aggiornare package.json garantisce un processo di deployment robusto e affidabile, permettendoti di concentrarti sulla creazione di nuove feature invece di preoccuparti dei passaggi manuali di rilascio.
Per maggiori dettagli sui comandi e le opzioni di Capgo CLI, consulta la documentazione di CLI. E per approfondire la configurazione di semantic-release, leggi la documentazione di semantic-release.
Buon deployment!
Continua dall'integrazione CI/CD
Sezione intitolata “Continua con l'integrazione CI/CD”Se stai usando Integrazione CI/CD per pianificare l'automazione CI/CD e connetterla a CI/CD con Capgo per il workflow del prodotto in Capgo CI/CD, Capgo Native Build per il workflow di prodotto in Capgo Native Builds, Integrazioni Capgo per il workflow di prodotto in Integrazioni Capgo, Integrazione GitHub Actions per i dettagli sull'integrazione di GitHub Actions, e Integrazione GitLab CI/CD per i dettagli sull'integrazione di GitLab CI/CD.