CI/CD-Integration
Copy a setup prompt with the install steps and the full markdown guide for this plugin.
Integrating Capgo into your CI/CD pipeline allows you to fully automate the process of building and deploying updates to your app. By leveraging the Capgo CLI and semantic-release, you can ensure consistent, reliable deployments and enable rapid iteration.
Vorteile der CI/CD-Integration
Abschnitt mit dem Titel ‘Vorteile der CI/CD-Integration’-
Automatisierung: Keine manuellen Schritte mehr oder Raum für menschliche Fehler. Ihr gesamter Build-, Test- und Bereitstellungsvorgang kann von Anfang bis Ende automatisiert werden.
-
Consistency: Jede Bereitstellung folgt dem gleichen Satz von Schritten, was eine vorhersehbare und wiederholbare Prozess garantiert. Dies ist besonders wertvoll, wenn mehrere Teammitglieder an der code mitwirken.
-
Schnellere Iterationen: Durch automatisierte Bereitstellungen können Sie Updates häufiger und mit Vertrauen bereitstellen. Keine mehr Wartezeit für manuelle QA oder Freigabeabstimmungen.
Capgo CLI
Abschnitt mit dem Titel “Capgo CLI”Der Capgo CLI ist der Schlüssel zur Integration von Capgo in dein CI/CD-Workflow. Er bietet Befehle zum Hochladen neuer Bundle-Versionen, zum Verwalten von Kanälen und vieles mehr.
Der wichtigste Befehl für die CI/CD-Integration ist bundle upload:
npx @capgo/cli@latest bundle upload --channel Production --apikey YOUR_API_KEYIf you use encryption you should provide it from one of these ways:
Mit einem privaten Schlüsseldateipfad:
npx @capgo/cli@latest bundle upload --channel Production --apikey YOUR_API_KEY --key-v2 PRIVATE_KEY_PATHMit dem direkten Inhalt des privaten Schlüssels (empfohlen für CI/CD):
npx @capgo/cli@latest bundle upload --channel Production --apikey YOUR_API_KEY --key-data-v2 PRIVATE_KEY_CONTENTVerwendung von Umgebungsvariablen (empfohlene Praxis für CI/CD):
npx @capgo/cli@latest bundle upload --channel Production --apikey YOUR_API_KEY --key-data-v2 "$CAPGO_PRIVATE_KEY"Einstellung von Umgebungsvariablen für Verschlüsselung
Abschnitt mit dem Titel „Einstellung von Umgebungsvariablen für Verschlüsselung“Für CI/CD-Umgebungen wird empfohlen, Ihren privaten Schlüssel als Umgebungsvariable zu speichern und nicht als Datei. Hier erfahren Sie, wie Sie ihn einrichten können:
-
Holen Sie sich den Inhalt Ihres privaten Schlüssels:
Terminalfenster cat .capgo_key_v2 | pbcopyDies kopiert den Schlüsselinhalt in Ihr Clipboard.
-
Fügen Sie ihn Ihrer CI/CD-Umgebung hinzu:
- GitHub Aktionen: Hinzufügen
CAPGO_PRIVATE_KEYzu Ihren Repository-Secrets - GitLab CI: Add it as a masked variable in your project settings
- CircleCI: Fügen Sie es als Umgebungsvariable in Ihren Projekt-Einstellungen hinzu
- JenkinsFügen Sie es als geheimes Textkonto hinzu
- GitHub Aktionen: Hinzufügen
-
Verwenden Sie es in Ihrer Pipeline:
- run: npx @capgo/cli@latest bundle upload --channel=production --apikey=${{ secrets.CAPGO_API_KEY }} --key-data-v2 "${{ secrets.CAPGO_PRIVATE_KEY }}"
Hinweis: Die --key-data-v2 erlaubt Ihnen, den privaten Schlüsselinhalt direkt als Zeichenkette zu übergeben, was es perfekt für Umgebungsvariablen in CI/CD-Pipelines macht, in denen Sie keine temporären Dateien erstellen möchten.
Dieser Befehl lädt die aktuelle Webanwendung in den angegebenen Kanal hoch. Sie führen diesen Befehl typischerweise als letzten Schritt in Ihrer CI/CD-Pipeline aus, nachdem Ihre Webanwendung erfolgreich abgeschlossen wurde.
Einrichten von Capgo in Ihrer CI/CD-Pipeline
Abschnitt mit dem Titel „Einrichten von Capgo in Ihrer CI/CD-Pipeline”Obwohl die genauen Schritte je nach Ihrer CI/CD-Werkzeugwahl variieren, sieht die allgemeine Prozedur für die Integration von Capgo wie folgt aus:
-
Erstellen Sie einen API-Schlüssel: Log in to the Capgo dashboard and create a new API key. This key will be used to authenticate the CLI in your CI/CD environment. Keep it secret and never commit it to your repository!
-
Konfigurieren Sie die
bundle uploadBefehl: Fügen Sie einen Schritt zu Ihrer CI/CD-Konfiguration hinzu, der denbundle uploadBefehl mit den entsprechenden Argumenten ausführt:\n Ersetzenupload.yml - run: npx @capgo/cli@latest bundle upload --channel=production --apikey=${{ secrets.CAPGO_API_KEY }}Productionmit dem Kanal, den Sie bereitstellen möchten,${{ secrets.CAPGO_API_KEY }}mit der Umgebungsvariable, die Ihren API-Schlüssel enthält, und fügen Sie--key-data-v2 "${{ secrets.CAPGO_PRIVATE_KEY }}"falls Sie Verschlüsselung verwenden. -
Fügen Sie den
uploadSchritt nach Ihrem Web-Buildhinzufügen: Stellen Sie sicher, dass deruploadSchritt nach dem erfolgreichen Abschluss Ihres Web-Builds erfolgt. Dies stellt sicher, dass Sie immer Ihre neuesten code bereitstellen.\n Hier ist ein Beispielkonfiguration für 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 }}"
Versionsverwaltung mit Semantic-release
Abschnitt: Versionsverwaltung mit Semantic-releaseDie empfohlene Methode zur Verwaltung von Versionen mit Capgo besteht darin, die Version in Ihrem capacitor.config.ts Durch die Importierung von package.json:
import pkg from './package.json'
const config: CapacitorConfig = { // ... other config plugins: { CapacitorUpdater: { version: pkg.version, } }}Diese Methode ermöglicht Ihnen:
- Use semantic-release (or any other tool) to update the
package.jsonVersion - Bauen Sie Ihre App mit der aktualisierten Version automatisch ein
- Laden Sie das Bundle mit der korrekten Version
Ihr CI/CD-Workflow würde wie folgt aussehen:
- 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 }}Hier ist ein Beispiel .releaserc Konfigurationsdatei für 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}" } ] ]}Diese Konfiguration tut Folgendes:
- Analyisiert die Commit-Nachrichten, um die nächste Versionsnummer zu bestimmen, basierend auf der Conventional Commits-Spezifikation.
- Erstellt Release-Notes basierend auf den Commits seit der letzten Release.
- Aktualisiert das
CHANGELOG.mdDatei mit den neuen Release-Hinweisen. - Aktualisiert das
package.jsonVersion, die von Ihrem capacitor.config abgerufen wird. - Kommt die aktualisierte
CHANGELOG.md,package.jsonund alle anderen geänderten Dateien wieder in das Repository zurück.
Stellen Sie sicher, dass Sie semantic-release vor der App-Bereitstellung ausführen, damit die aktualisierte Version package.json in Ihrer Build durch die capacitor.config enthalten ist.
Auto-bump, wenn die lokale Version bereits auf Capgo ist
Abschnitt mit dem Titel „Auto-bump, wenn die lokale Version bereits auf Capgo ist“Bundle-Namen müssen eindeutig sein (gelöschte Versionen beanspruchen noch ihren Namen). Wenn CI immer wieder denselben package.json version, the upload fails. Prefer bumping package.json (for example with semantic-release). When that is not practical, let the CLI pick the next free semver from the channel’s linked bundle, or else the latest remote app version:
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 verwendet Capgo Cloudflare Workers AI, um lokale Bundle-Dateien gegenüber dem vorherigen Capgo/Kanal-Delta-Manifest zu vergleichen und auszuwählen major | minor | patch | metadataMit keiner vorherigen Capgo Version wird AI übergangen und der Bump wird durchgeführt. patch.
Vermeiden Sie die Combination --auto-bump mit --bundle / -bSiehe die bundle upload Referenz für die vollständige Optionenliste.
Fehlertreiber
Section titled “Troubleshooting”If you encounter issues with your Capgo CI/CD integration, here are a few things to check:
-
API Schlüssel: Ensure your API key is valid and has the necessary permissions. If using an environment variable, double check that it’s set correctly.
-
CLI VersionStellen Sie sicher, dass Sie die aktuellste Version von Capgo und CLI verwenden. Ältere Versionen können Kompatibilitätsprobleme oder bestimmte Funktionen vermissen.
-
Build-Artikel: Stellen Sie sicher, dass Ihre Web-Ausgabe die erwarteten Ausgabedateien erzeugt. Die Capgo CLI benötigt eine gültige Web-Ausgabe, um ein Bundle zu erstellen.
-
NetzwerkverbindungÜberprüfen Sie, ob Ihr CI/CD-Umgebung Zugriff auf das Netzwerk auf die Capgo-Server hat. Firewall- oder Proxy-Probleme können manchmal mit der Funktion interferieren.
uploadKommandozeile
Wenn Sie weiterhin Schwierigkeiten haben, wenden Sie sich bitte an den Capgo-Support, um Hilfe zu erhalten.
Conclusion
Section titled “Conclusion”Integrating Capgo into your CI/CD pipeline with proper version management can greatly streamline your development workflow. By automating your deployments and versioning through the capacitor.config approach, you can ship updates faster and with more confidence.
Die empfohlene Methode zur Festlegung der Version in Ihrem capacitor.config.ts Datei und mit semantic-release aktualisieren package.json provides a robust and reliable deployment process that allows you to focus on building great features rather than worrying about manual release steps.
Für weitere Details zu den Capgo CLI Befehlen und Optionen, besuchen Sie die CLI Referenz. And for a deeper dive into semantic-release configuration, see the semantic-release-Dokumentation an.
Glückwunsch beim Bereitstellen!
Fortsetzung von CI/CD-Integration
Sektion mit dem Titel “Fortsetzung von CI/CD-Integration”Wenn Sie Live Update verwenden CI/CD-Integration to plan CI/CD automation, connect it with Capgo CI/CD für den Produktworkflow in Capgo CI/CD, Capgo nativee Builds für das Produktworkflow in Capgo Native Builds Capgo Integrations für den Produktworkflow in Capgo Integrations, für das Produktworkflow in GitHub Integrations für die Implementierungsdetails in GitHub Actions-Integration und GitLab CI/CD-Integration für die Implementierungsdetails in der GitLab CI/CD-Integration.