Zum Inhalt springen

CI/CD-Integration

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.

  • Automatisierung: Keine manuellen Schritte oder Raum für menschliche Fehler mehr. Ihr gesamter Build-, Test- und Bereitstellungsvorgang kann von Anfang bis Ende automatisiert werden.

  • Einhaltung von Standards: Every deployment follows the same set of steps, ensuring a predictable and repeatable process. This is especially valuable when you have multiple team members contributing code.

  • Schnellere Iterationen: Durch automatisierte Bereitstellungen können Sie Updates häufiger und mit Vertrauen verschicken. Keine mehr Wartezeit für manuelle QA oder Freigabeanträge.

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 vielem mehr.

Der wichtigste Befehl für die CI/CD-Integration ist bundle upload:

Terminal-Fenster
npx @capgo/cli@latest bundle upload --channel Production --apikey YOUR_API_KEY

Wenn du Verschlüsselung verwendest, solltest du sie aus einer dieser Quellen bereitstellen:

Mit einem privaten Schlüssel-Dateipfad:

Terminal-Fenster
npx @capgo/cli@latest bundle upload --channel Production --apikey YOUR_API_KEY --key-v2 PRIVATE_KEY_PATH

Mit dem direkten Inhalt des privaten Schlüssels (empfohlen für CI/CD):

Terminal-Fenster
npx @capgo/cli@latest bundle upload --channel Production --apikey YOUR_API_KEY --key-data-v2 PRIVATE_KEY_CONTENT

Verwendung von Umgebungsvariablen (empfohlene Praxis für CI/CD):

Terminalfenster
npx @capgo/cli@latest bundle upload --channel Production --apikey YOUR_API_KEY --key-data-v2 "$CAPGO_PRIVATE_KEY"

Für CI/CD-Umgebungen wird empfohlen, Ihren privaten Schlüssel als Umgebungsvariable zu speichern und nicht als Datei. Hier ist, wie Sie es einrichten können:

  1. Holen Sie sich den Inhalt Ihres privaten Schlüssels:

    Terminalfenster
    cat .capgo_key_v2 | pbcopy

    Dies kopiert den Schlüsselinhalt in Ihr Clipboard.

  2. Fügen Sie ihn Ihrer CI/CD-Umgebung hinzu:

    • GitHub Actions: Hinzufügen CAPGO_PRIVATE_KEY zu Ihren Repository-Secrets
    • GitLab CI: Fügen Sie es als maskeierte Variable in Ihren Projekt-Einstellungen hinzu
    • CircleCI: Fügen Sie es als Umgebungsvariable in Ihren Projekt-Einstellungen hinzu
    • Jenkins: Fügen Sie es als geheimes Textkredenzial hinzu
  3. 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.

Obwohl die genauen Schritte je nach Ihrer CI/CD-Werkzeugwahl variieren, sieht die allgemeine Prozedur für die Integration von Capgo wie folgt aus:

  1. Erstellen Sie einen API-Schlüssel: Melden Sie sich bei der Capgo-Oberfläche an und erstellen Sie einen neuen API-Schlüssel. Dieser Schlüssel wird zum Authentifizieren der CLI in Ihrer CI/CD-Umgebung verwendet. Halten Sie ihn geheim und vermeiden Sie es, ihn in Ihrem Repository zu committen!

  2. Konfigurieren Sie die bundle upload Befehl: Fügen Sie einen Schritt zu Ihrer CI/CD-Konfiguration hinzu, der den bundle upload Befehl mit den entsprechenden Argumenten ausführt:

    upload.yml
    - run: npx @capgo/cli@latest bundle upload --channel=production --apikey=${{ secrets.CAPGO_API_KEY }}
    \n Ersetzen Production mit 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 }}" wenn Sie Verschlüsselung verwenden.

  3. Fügen Sie den upload Schritt nach Ihrem Web-Buildzurück: Stellen Sie sicher, dass der upload step comes after your web build has completed successfully. This ensures you’re always deploying your latest code.\n Here’s an example configuration for GitHub Actions:\n

    Beispielkonfiguration für __CAPGO_KEEP_1__ Actions:\n
    name: Deploy to Capgo
    on:
    push:
    branches: [main]
    jobs:
    deploy:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v6
    - uses: actions/setup-node@v6
    with:
    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 }}"

Die 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:

  1. Verwenden Sie semantic-release (oder jede andere Werkzeug) zum Aktualisieren der package.json Version
  2. Bauen Sie Ihre App mit der aktualisierten Version automatisch ein
  3. Hochladen 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:

  1. Analytisiert die Commit-Nachrichten, um die nächste Versionsnummer zu bestimmen, basierend auf der Conventional Commits-Spezifikation.
  2. Erstellt Release-Notizen auf der Grundlage der Commits seit der letzten Veröffentlichung.
  3. Aktualisiert das CHANGELOG.md Datei mit den neuen Release-Notizen.
  4. Aktualisiert die package.json Version, die von Ihrem capacitor.config aufgenommen wird.
  5. Kommt die aktualisierte CHANGELOG.md, package.json, und alle anderen geänderten Dateien wieder in das Repository zurück.

Stellen Sie sicher, dass Sie semantic-release vor der Erstellung Ihrer App ausführen, damit die aktualisierte Version von package.json wird in Ihrer Build durch die capacitor.config. enthalten.

Die Namen der Pakete müssen eindeutig sein (gelöschte Versionen belegen noch ihren Namen). Wenn der CI immer noch die gleiche Version hochlädt, schlägt die Upload-Funktion fehl. Es ist besser, zu bumpen package.json (z.B. mit semantic-release). Wenn das nicht praktikabel ist, lassen Sie den __CAPGO_KEEP_0__ den nächsten freien Semver aus dem kanalverbundenen Paket oder sonst die neueste Remote-App-Version wählen: 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:

Zur Zwischenablage kopieren
npx @capgo/cli@latest bundle upload --channel=production --auto-bump
npx @capgo/cli@latest bundle upload --auto-bump major
npx @capgo/cli@latest bundle upload --auto-bump minor # default when the flag has no value
npx @capgo/cli@latest bundle upload --auto-bump patch # alias: fix
npx @capgo/cli@latest bundle upload --auto-bump metadata
npx @capgo/cli@latest bundle upload --channel=production --auto-bump ai

--auto-bump ai uses Capgo Cloudflare Workers AI to compare local bundle files against the previous Capgo/channel delta manifest, pick major | minor | patch | metadata, and print a short reason. With no previous Capgo version, AI is skipped and the bump is patch.

Vermeiden Sie eine Combination --auto-bump mit --bundle / -b. Siehe die bundle upload Referenz für die vollständige Liste der Optionen.

Wenn Sie Probleme mit Ihrer CI/CD-Integration von Capgo auftreten, überprüfen Sie bitte die folgenden Punkte:

  • API-Schlüssel: Stellen Sie sicher, dass Ihr API-Schlüssel gültig ist und die erforderlichen Berechtigungen besitzt. Wenn Sie ein Umgebungsvariable verwenden, überprüfen Sie bitte, ob es korrekt eingestellt ist.

  • CLI-Version: Stellen Sie sicher, dass Sie die aktuellste Version von Capgo CLI verwenden. Ältere Versionen können Kompatibilitätsprobleme oder fehlende Funktionen aufweisen.

  • Build artefakte: 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 die Capgo-Server hat. Firewall- oder Proxy-Probleme können manchmal mit der upload Kommandozeile

If you’re still having trouble, reach out to Capgo support for assistance. They can help troubleshoot any issues with your specific setup.

Wenn Sie weiterhin Schwierigkeiten haben, wenden Sie sich an das __CAPGO_KEEP_0__-Support-Team für Unterstützung. Sie können Ihnen bei der Behebung von Problemen mit Ihrer spezifischen Konfiguration helfen.

Zusammenfassung

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 Integration von __CAPGO_KEEP_0__ in Ihre CI/CD-Pipeline mit einer ordnungsgemäßen Versionsverwaltung kann Ihre Entwicklungsarbeit erheblich beschleunigen. Durch die Automatisierung Ihrer Bereitstellungen und Versionsverwaltung über die __CAPGO_KEEP_1__.config-Ansatz können Sie Updates schneller und mit mehr Vertrauen bereitstellen. capacitor.config.ts Die empfohlene Vorgehensweise besteht darin, die Versionsnummer in Ihrem package.json Datei und die Aktualisierung mit der Hilfe von semantic-release durchzuführen. Dies bietet einen robusten und zuverlässigen Bereitstellungsprozess, der Ihnen ermöglicht, sich auf die Entwicklung von großartigen Funktionen zu konzentrieren und sich nicht um manuelle Release-Schritte kümmern zu müssen.

Für weitere Details zu den Capgo CLI Befehlen und Optionen, besuchen Sie die CLI Referenz. Und für eine tiefergehende Einführung in die Konfiguration von semantic-release, sehen Sie sich die semantic-release-Dokumentation an.

Glückwunsch beim Bereitstellen!

Wenn Sie CI/CD-Integration im Rahmen der Capgo Builder / native cloud Build-Produktseite verwenden, um die CI/CD-Automatisierung zu planen, verbinden Sie sie mit Capgo CI/CD für das Produktworkflow in Capgo CI/CD, Capgo Native Builds für das Produktworkflow in Capgo Native Builds Capgo Integrations für das Produktworkflow in Capgo Integrations GitHub Actions Integration für die Implementierungsdetails in GitHub Actions Integration, und GitLab CI/CD Integration für die Implementierungsdetails in GitLab CI/CD Integration.