Zum Inhalt springen

CI/CD-Integration

Durch die Integration von Capgo in Ihren CI/CD-Pipeline können Sie den gesamten Prozess der Erstellung und Bereitstellung von Updates für Ihre App vollständig automatisieren. Durch die Nutzung der Capgo CLI und semantic-release können Sie sicherstellen, dass die Bereitstellung konsistent und zuverlässig ist und eine schnelle Iteration ermöglichen.

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

  • Konsistenz: Jede Bereitstellung folgt dem gleichen Satz von Schritten, was eine vorhersehbare und wiederholbare Prozess garantiert. Dies ist insbesondere wertvoll, wenn mehrere Teammitglieder an der code beteiligt sind.

  • Schnellere Iterationen: Mit automatisierten Bereitstellungen können Sie Updates häufiger und mit Vertrauen bereitstellen. Keine Wartezeit mehr für manuelle QA oder Freigabe.

Das Capgo CLI ist der Schlüssel zur Integration von Capgo in Ihren CI/CD-Workflow. Es bietet Befehle zum Hochladen neuer Bundle-Versionen, zum Verwalten von Kanälen und mehr.

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

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

Wenn Sie Verschlüsselung verwenden, sollten Sie sie von einer dieser Wege bereitstellen:

Mithilfe eines privaten Schlüsseldateipfads:

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

Mithilfe des privaten Schlüsselinhalt direkt (empfohlen für CI/CD):

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

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

    Terminal-Fenster
    cat .capgo_key_v2 | pbcopy

    Dies kopiert den Schlüsselinhalt in Ihre Zwischenablage.

  2. Fügen Sie ihn in Ihre CI/CD-Umgebung ein:

    • GitHub Aktionen: Hinzufügen CAPGO_PRIVATE_KEY zu Ihren Repository-Secrets
    • GitLab CI: Fügen Sie ihn als maskierte Variable in Ihren Projekt-Einstellungen hinzu
    • CircleCIFügen Sie es als Umgebungsvariable in Ihren Projekt-Einstellungen hinzu
    • JenkinsFügen Sie es als geheimes Textkonto ein
  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 }}"

HinweisDie Flag --key-data-v2 erlaubt Ihnen, den privaten Schlüsselinhalt direkt als Zeichenkette zu übergeben, was sie perfekt für Umgebungsvariablen in CI/CD-Pipelines macht, in denen Sie keine temporären Dateien erstellen möchten.

Diese Befehl lädt die aktuelle Webanwendung in den angegebenen Kanal hoch. Sie führen diesen Befehl typischerweise als letztes Schritt in Ihrer CI/CD-Pipeline aus, nachdem Ihre Webanwendung erfolgreich abgeschlossen wurde.

Einrichten von Capgo in Ihrer CI/CD-Pipeline

Überschrift: Einrichten von Capgo in Ihrer CI/CD-Pipeline

Während die genauen Schritte je nach Ihrer CI/CD-Werkzeugwahl variieren, sieht die allgemeine Prozedur zur Integration von Capgo ungefähr so aus:

  1. Erstelle einen API-Schlüssel: Melden Sie sich im Capgo-Dashboard an und erstellen Sie einen neuen API-Schlüssel. Dieser Schlüssel wird zur Authentifizierung des CLI in Ihrem 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 Sie Production mit dem Kanal, den Sie bereitstellen möchten, ${{ secrets.CAPGO_API_KEY }} mit dem Umgebungsvariablen, der Ihren API-Schlüssel enthält, und fügen Sie --key-data-v2 "${{ secrets.CAPGO_PRIVATE_KEY }}" hinzu, wenn Sie Verschlüsselung verwenden.

  3. Fügen Sie den Schritt nach Ihrem Web-Build hinzu upload Schritt nach Ihrem Web-Build: Stellen Sie sicher, dass der Schritt nach Ihrem Web-Build erfolgreich abgeschlossen wurde. Dadurch stellen Sie sicher, dass Sie immer Ihre neuesten __CAPGO_KEEP_0__ bereitstellen. 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

    upload.yml
    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 Datei durch Importieren von package.json:

import pkg from './package.json'
const config: CapacitorConfig = {
// ... other config
plugins: {
CapacitorUpdater: {
version: pkg.version,
}
}
}

Mit dieser Methode können Sie:

  1. Verwenden Sie semantic-release (oder jede andere Tool) zum Aktualisieren der package.json version
  2. Bauen Sie Ihre App mit der aktualisierten Version automatisch enthalten
  3. Laden Sie die Bundle mit der richtigen Version hoch

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. Analysiert 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 CHANGELOG.md Datei mit den neuen Release-Hinweisen aktualisiert.
  4. Aktualisiert package.json die Version, die von Ihrem capacitor.config. aufgenommen wird.
  5. Committet die aktualisierten CHANGELOG.md, package.json, und alle anderen geänderten Dateien wieder in den Repository.

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

Wenn Sie Probleme mit Ihrer Capgo CI/CD-Integration haben, überprüfen Sie bitte folgende Dinge:

  • API Schlüssel: Stellen Sie sicher, dass Ihre API-Schlüssel gültig und die notwendigen Berechtigungen besitzt. Wenn Sie eine Umgebungsvariable verwenden, überprüfen Sie, ob sie korrekt eingestellt ist.

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

  • Build-Artikel: Bestätigen Sie, dass Ihre Web-Ausgabe die erwarteten Ausgabedateien erzeugt. Die Capgo- CLI-Version benötigt eine gültige Web-Ausgabe, um eine 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 Ausführung des Befehls interferieren. upload Kommando

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

Die Integration von Capgo in Ihre CI/CD-Pipeline mit einer ordnungsgemäßen Versionsverwaltung kann Ihren Entwicklungsworkflow erheblich beschleunigen. Durch die Automatisierung Ihrer Bereitstellungen und Versionsverwaltung über die capacitor.config-Ansatz können Sie Updates schneller und mit mehr Vertrauen bereitstellen.

Die empfohlene Methode zur Festlegung der Version in Ihrem capacitor.config.ts Dateien und die Verwendung von semantic-release, um zu aktualisieren package.json bietet eine robuste und zuverlässige Bereitstellungsvorgang, der Ihnen ermöglicht, sich auf das Bauen von großartigen Funktionen zu konzentrieren, anstatt sich um manuelle Release-Schritte zu kümmern.

Für weitere Informationen 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, siehe die semantic-release Dokumentation.

Freue dich auf das Bereitstellen!