Zum Inhalt springen

CI/CD-Integration

Die Integration von Capgo in Ihren CI/CD-Pipeline ermöglicht es Ihnen, den gesamten Prozess der Erstellung und Bereitstellung von Updates für Ihre App vollständig zu 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öglicht.

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

  • Konsistenz: Jedes Deployment folgt demselben Satz von Schritten, was eine vorhersehbare und wiederholbare Prozess garantiert. Dies ist besonders wertvoll, wenn Sie mehrere Teammitglieder an der code beteiligen.

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

Der Capgo CLI ist der Schlüssel zur Integration von Capgo in Ihr CI/CD-Workflow. Er bietet Befehle für das Hochladen neuer Bundle-Versionen, das 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 Möglichkeiten bereitstellen:

Mit einem privaten Schlüsseldateipfad:

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

Mithilfe des privaten Schlüsselinhalt direkt verwenden (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"

Einstellung von Umgebungsvariablen für die Verschlüsselung

Abschnitt mit dem Titel “Einstellung von Umgebungsvariablen für die Verschlüsselung”

Für CI/CD-Umgebungen wird empfohlen, Ihren privaten Schlüssel als Umgebungsvariable zu speichern und nicht als Datei. Hier ist, wie Sie ihn 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 Ihre Zwischenablage.

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

    • GitHub Aktionen: Hinzufügen CAPGO_PRIVATE_KEY in Ihre 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: Die --key-data-v2 Flagge ermöglicht Ihnen, den Inhalt der privaten Schlüssel direkt als Zeichenfolge zu übergeben, was sie perfekt für Umgebungsvariablen in CI/CD-Pipelines macht, in denen Sie keine temporären Dateien erstellen möchten.

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

Während die genauen Schritte je nach Ihrer CI/CD-Werkzeugwahl variieren, sieht die allgemeine Prozedur zur 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 Ihrer CI/CD-Umgebung verwendet. Halten Sie ihn geheim und geben Sie ihn nie in Ihre Repository ein!

  2. Konfigurieren Sie das bundle upload Befehl: Fügen Sie einen Schritt in 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 durch den Kanal, an den Sie deployen möchten, ${{ secrets.CAPGO_API_KEY }} durch die Umgebungsvariable, die Ihren API-Schlüssel enthält, und fügen Sie --key-data-v2 "${{ secrets.CAPGO_PRIVATE_KEY }}" falls Verschlüsselung verwendet wird.

  3. Fügen Sie den upload Schritt nach Ihrem Web-Build hinzu: Stellen Sie sicher, dass 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 Die empfohlene Methode zur Verwaltung von Versionen mit __CAPGO_KEEP_0__ besteht darin, die Version in Ihrem package.json:

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

Zum Auswählen kopieren

  1. Diese Methode ermöglicht Ihnen: package.json Semantic-release (oder jede andere Werkzeug) zu verwenden, um die
  2. Version zu aktualisieren, und Ihre App automatisch mit der aktualisierten Version zu bauen.
  3. Das Bundle mit der richtigen Version 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 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 das package.json Die Version, die von Ihrem capacitor.config. aufgenommen wird.
  5. Die aktualisierten CHANGELOG.md, package.json, und alle anderen geänderten Dateien werden wieder in den Repository zurückgegeben.

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

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

  • API Schlüssel: Stellen Sie sicher, dass Ihr API-Schlüssel gültig ist und die notwendigen Berechtigungen hat. Wenn Sie ein Umgebungsvariable verwenden, überprüfen Sie bitte, dass es richtig gesetzt 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 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.

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

Die Integration von Capgo in Ihre CI/CD-Pipeline mit ordnungsgemäßer Versionsverwaltung kann Ihren Entwicklungsworkflow erheblich vereinfachen. Durch die Automatisierung Ihrer Bereitstellungen und 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 Verwendung von semantic-release, um die package.json stellt einen robusten und zuverlässigen Bereitstellungsprozess bereit, der Ihnen ermöglicht, sich auf die Entwicklung von großartigen Funktionen zu konzentrieren und sich nicht 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 für die Planung der CI/CD-Automatisierung verwenden, verbinden Sie sie 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 GitLab CI/CD Integration.