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 sichergehen, dass die Bereitstellung konsistent und zuverlässig ist und eine schnelle Iteration ermöglicht.

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

  • Einhaltung von StandardsJede Bereitstellung folgt dem gleichen Satz von Schritten, was eine vorhersehbare und wiederholbare Prozess sicherstellt. Dies ist besonders wertvoll, wenn mehrere Teammitglieder an der code beteiligt sind.

  • Schnellere IterationenMit automatisierten Bereitstellungen können Sie Updates häufiger und mit Vertrauen verschicken. Keine mehr Wartezeit für manuelle QA oder Freigabeanforderungen.

Der Capgo CLI ist der Schlüssel zur Integration von Capgo in Ihren CI/CD-Workflow. Er bietet Befehle für das Hochladen neuer Bundle-Versionen, das Verwalten von Kanälen und mehr.

Die wichtigste Befehlszeile 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 aus einer dieser Wege bereitstellen:

Mit einem privaten Schlüsseldateipfad:

Terminalfenster
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):

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

Mit Umgebungsvariablen (Best Practice 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 Ihrem CI/CD-Umgebung hinzu:

    • GitHub Aktionen: Hinzufügen CAPGO_PRIVATE_KEY zu Ihren Repository-Secrets
    • GitLab CI: Fügen Sie es als maskierte 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 Text-Credential hinzu
  3. Verwenden Sie es in Ihrem Pipeline:

    - run: npx @capgo/cli@latest bundle upload --channel=production --apikey=${{ secrets.CAPGO_API_KEY }} --key-data-v2 "${{ secrets.CAPGO_PRIVATE_KEY }}"

Hinweis: Das --key-data-v2 Flag ermöglicht es Ihnen, den Inhalt des privaten Schlüssels direkt als Zeichenfolge zu übergeben, was es perfekt für Umgebungsvariablen in CI/CD-Pipelines macht, in denen Sie keine temporären Dateien erstellen möchten.

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

Während 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 des CLI in Ihrem CI/CD-Umgebung verwendet. Bewahren Sie ihn geheim und vermeiden Sie es, ihn in Ihrem Repository zu committen!

  2. Konfigurieren Sie das 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 }}
    Ersetzen Production mit dem Kanal, an 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 die upload Schritt nach Ihrem Web-Build: 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

    Hier ist ein Beispielkonfiguration für __CAPGO_KEEP_1__ Actions:
    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 }}"

The recommended way to handle versioning with Capgo is to set the version in your capacitor.config.ts Datei durch Importieren von ihr package.json:

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

Mit dieser Methode kannst du:

  1. Semantic-release (oder jede andere Werkzeug) verwenden, um die package.json Version
  2. Mit der aktualisierten Version automatisch bauen
  3. Die Bundle mit der richtigen Version hochladen

Deine 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 führt folgende Aktionen aus:

  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 Versionsnummer, die von Ihrem capacitor.config. abgerufen wird.
  5. Kommt die aktualisierte CHANGELOG.md, package.json, sowie alle anderen geänderten Dateien, wieder in den Repository zurück.

Stellen Sie sicher, dass Sie semantic-release vor der Erstellung Ihres Apps ausführen, damit die aktualisierte Versionsnummer aus 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 die folgenden Punkte:

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

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

  • Build-Artikel: Bestätigen Sie, dass Ihre Web-Ausführung die erwarteten Ausgabedateien generiert. Die Capgo CLI benötigt eine gültige Web-Ausführung, um ein Bundle zu erstellen.

  • Netzwerkverbindung: Überprüfen Sie, ob Ihr CI/CD-Umgebung Zugriff auf die Capgo-Server hat. Feuerwalls- oder Proxy-Probleme können manchmal mit der Ausführung des upload Befehls

interagieren. Wenn Sie weiterhin Schwierigkeiten haben, wenden Sie sich bitte an das Capgo-Support-Team, um Hilfe bei der Fehlersuche bei Ihrer spezifischen Konfiguration zu erhalten.

Conclusion

Abschluss

Integrating Capgo in Ihren CI/CD-Pipeline mit angemessener Versionsverwaltung kann Ihren Entwicklungsworkflow erheblich beschleunigen. Durch die Automatisierung Ihrer Bereitstellungen und Versionsverwaltung über die capacitor.config-Methode können Sie Updates schneller und mit mehr Vertrauen bereitstellen.

Die empfohlene Vorgehensweise besteht darin, die Versionsnummer in Ihrem capacitor.config.ts Datei festzulegen und die package.json semantic-release-Anwendung zum Aktualisieren der Versionsnummer zu verwenden.

For more details on the Capgo CLI commands and options, check out the Für weitere Informationen zu den CLI __CAPGO_KEEP_1__-Befehlen und Optionen, besuchen Sie die__CAPGO_KEEP_0__-Dokumentation . Und für eine tiefergehende Einführung in die Konfiguration von semantic-release, sehen Sie sich die.

semantic-release-Dokumentation

Wenn Sie " CI/CD-Integration für die Planung der CI/CD-Automatisierung verwenden, verbinden Sie es mit Capgo CI/CD für den Produktworkflow in Capgo CI/CD, Capgo Native Builds für den Produktworkflow in Capgo Native Builds, Capgo Integrations für den 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 der GitLab CI/CD Integration.