Zum Inhalt springen

CI/CD-Integration

Die Integration von Capgo in Ihren CI/CD-Pipeline ermöglicht Ihnen die vollständige Automatisierung des Prozesses der Erstellung und Bereitstellung von Updates für Ihre App. 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öglichen.

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

  • Einhaltung von Standards: Jede Bereitstellung folgt demselben Satz von Schritten, was eine vorhersehbare und wiederholbare Prozess garantiert. Dies ist besonders wertvoll, wenn mehrere Teammitglieder an der code mitwirken.

  • Schnellere Iterationen: Mit automatischen Bereitstellungen können Sie Updates häufiger und mit Vertrauen bereitstellen. Keine mehr Warte auf manuelle QA oder Freigabe genehmigungen.

Der Capgo CLI ist der Schlüssel zur Integration von Capgo in Ihr CI/CD-Workflow. Er 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 aus einer dieser Quellen 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

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"

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 es einrichten:

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

    Terminalfenster
    cat .capgo_key_v2 | pbcopy

    Dies kopiert den Schlüsselinhalt in Ihre Zwischenablage.

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

    • GitHub Aktionen: Fügen Sie CAPGO_PRIVATE_KEY zu Ihren Repository-Secrets
    • GitLab CI: Fügen Sie es als maskierte Variable in Ihren Projekt-Einstellungen ein
    • CircleCI: Fügen Sie es als Umgebungsvariable in Ihren Projekt-Einstellungen ein
    • Jenkins: Fügen Sie es als geheimes Textkredit 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 }}"

Hinweis: Die --key-data-v2 Flag ermöglicht Ihnen, den privaten Schlüsselinhalt 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.

Dieser 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.

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. API-Schlüssel generieren: 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. __CAPGO_KEEP_2__-Befehl konfigurieren bundle upload __CAPGO_KEEP_2__-Befehl: Fügen Sie einen Schritt zu Ihrer CI/CD-Konfiguration hinzu, der den bundle upload Befehl mit den entsprechenden Argumenten:

    upload.yml
    - run: npx @capgo/cli@latest bundle upload --channel=production --apikey=${{ secrets.CAPGO_API_KEY }}
    \n Ersetzen Production mit dem Kanal, zu dem Sie deployen 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.

  3. Fügen Sie den upload Schritt nach Ihrem Web-Buildhinzufügen: Stellen Sie sicher, dass der upload Schritt nach dem erfolgreichen Abschluss Ihres Web-Builds kommt. Dies stellt sicher, dass Sie immer Ihre neuesten code deployen.\n Hier ist ein Beispielkonfiguration für 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 der Versionsnummer mit Capgo besteht darin, die Versionsnummer 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,
}
}
}

Mit dieser Methode kannst du:

  1. Semantic-release (oder jede andere Werkzeug) verwenden, um die package.json Versionsnummer
  2. Mit der aktualisierten Versionsnummer automatisch bauen Sie Ihre App
  3. Das Bundle mit der korrekten Versionsnummer hochladen

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 führt Folgendes aus:

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

Stellen Sie sicher, dass Sie semantic-release vor der Erstellung Ihrer App ausführen, damit die aktualisierte Version in Ihrer __CAPGO_KEEP_0__.config enthalten ist. package.json Auto-bump, wenn die lokale Version bereits auf capacitor ist.

Terminal-Fenster package.json Zur Zwischenablage kopieren package.json verwendet CLI __CAPGO_KEEP_1__ Workers AI, um die lokalen Paketdateien gegenüber dem vorherigen __CAPGO_KEEP_2__/Kanal-Delta-Manifest zu vergleichen, wählt

, und gibt eine kurze Begründung aus. Ohne vorherige __CAPGO_KEEP_0__-Version wird die AI übergangen und der Bump wird
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 | metadataAuto-bump, wenn die lokale Version bereits auf Capgo ist. Patching.

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

If you encounter issues with your Capgo CI/CD integration, here are a few things to check:

  • API key: Ensure your API key is valid and has the necessary permissions. If using an environment variable, double check that it’s set correctly.

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

  • Build-Artikel: Bestätigen Sie, dass Ihre Web-Ausgabe die erwarteten Ausgabedateien generiert. 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 Ausführung des Befehls interferieren. upload Befehl

: Wenn Sie weiterhin Schwierigkeiten haben, wenden Sie sich an Capgo-Support, um Hilfe zu erhalten. Sie können 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 Ihre Entwicklungsmethodik erheblich verbessern. Durch die Automatisierung Ihrer Bereitstellungen und die Versionsverwaltung über die capacitor.config-Ansatz können Sie Updates schneller und mit mehr Vertrauen bereitstellen.

Die empfohlene Vorgehensweise besteht darin, die Version in Ihrem capacitor.config.ts Datei und die Aktualisierung mit semantic-release zu verwenden package.json bietet eine robuste und zuverlässige Bereitstellungsprozess, der Ihnen ermöglicht, sich auf das Bauen großartiger Funktionen zu konzentrieren, anstatt sich um manuelle Release-Schritte zu kümmern.

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

an. Viel Erfolg beim Bereitstellen!

Wenn Sie CI/CD-Integration context 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.