GitLab CI/CD-Integration
Einen Einrichtungsprompt mit den Installationsanweisungen und der vollständigen Markdown-Guide für diesen Plugin kopieren.
Integriere Capgo Live Updates mit GitLab CI/CD, um Ihre App-Updates automatisch zu deployen, sobald Sie code Änderungen pushen. Diese Anleitung deckt die Einrichtung von automatischen Builds, Tests und Bereitstellungsworkflows ab.
Voraussetzungen
Abschnitt mit dem Titel “Voraussetzungen”Bevor Sie die GitLab CI/CD-Integration einrichten, stellen Sie sicher, dass Sie haben:
- Eine GitLab-Konto mit einem Projektrepository
- Eine Capgo-Konto mit einer konfigurierten Anwendung
- Node.js und npm/yarn in Ihrem Projekt konfiguriert
GitLab CI/CD einrichten
Abschnitt mit dem Titel “GitLab CI/CD einrichten”Schritt 1: Umgebungsvariablen konfigurieren
Abschnitt mit dem Titel “Schritt 1: Umgebungsvariablen konfigurieren”Zunächst müssen Sie die notwendigen Variablen in Ihrem GitLab-Projekt einrichten:
- Navigieren Sie zu Ihrem GitLab-Projekt
- Gehe zu Einstellungen → CI/CD → Variablen
- Fügen Sie die folgenden Variablen hinzu:
| Variablenname | Wert | Geschützt | Verdeckt |
|---|---|---|---|
CAPGO_TOKEN | Ihr Capgo API Token | ✅ Ja | ✅ Ja |
Grundlegende Konfiguration, die auf jeden Push in die Hauptzweig in die Produktion deployt:
# .gitlab-ci.yml - Simple Configurationimage: node:22
stages: - build - deploy
variables: npm_config_cache: "$CI_PROJECT_DIR/.npm"
build: stage: build script: - npm ci - npm run test - npm run build artifacts: paths: - dist/ expire_in: 1 hour only: - main
deploy_production: stage: deploy script: - npm install -g @capgo/cli - npx @capgo/cli bundle upload --apikey $CAPGO_TOKEN --channel production # For encrypted uploads, add: --key-data-v2 "$CAPGO_PRIVATE_KEY" dependencies: - build only: - mainErweitert
Abschnitt mit dem Titel “Erweitert”Funktionszweig-Deployments
Abschnitt mit dem Titel “Funktionszweig-Deployments”Deployen Sie Funktionszweige in Testkanäle für die Überprüfung und Testung:
# Feature branch deploymentdeploy_feature: stage: deploy script: - npm install -g @capgo/cli - CHANNEL_NAME="feature-$(echo $CI_COMMIT_REF_NAME | sed 's/[^a-zA-Z0-9-]/-/g')" - npx @capgo/cli channel add $CHANNEL_NAME --apikey $CAPGO_TOKEN || true - npx @capgo/cli bundle upload --apikey $CAPGO_TOKEN --channel $CHANNEL_NAME dependencies: - build only: - /^feature\/.*$/ environment: name: feature/$CI_COMMIT_REF_NAME url: https://your-app.com/channels/$CHANNEL_NAMEMit Verschlüsselung arbeiten
Verwendung von VerschlüsselungWenn Sie Verschlüsselung verwenden Capgo’s Verschlüsselungsfeature, Sie müssen Ihren privaten Schlüssel sicher in Ihrem CI/CD-Umgebung speichern.
Nachdem Sie die Verschlüsselungs-Schlüssel lokal eingerichtet haben fügen Sie Ihren privaten Schlüssel den GitLab-Variablen hinzu:
# Display your private key content (copy this output)cat .capgo_key_v2Fügen Sie diesen Inhalt als CAPGO_PRIVATE_KEY in Ihren GitLab-Projekt-Variablen (als geschützt und maskiert markieren) ein und verwenden Sie ihn in Pipelines:
# Deploy with encryptiondeploy_production: script: - npm install -g @capgo/cli - npx @capgo/cli bundle upload --apikey $CAPGO_TOKEN --key-data-v2 "$CAPGO_PRIVATE_KEY" --channel productionMulti-Channel-Konfiguration
Abschnitt mit dem Titel “Multi-Channel-Konfiguration”Für umfassende Informationen zum Einrichten und Verwalten mehrerer Bereitstellungskanäle siehe die Dokumentation zu den Kanälen.
Vollständige Konfiguration mit mehreren Umgebungen und Merge-Request-Bereitstellungen:
# .gitlab-ci.yml - Advanced Multi-Channel Configurationimage: node:22
stages: - build - deploy
variables: npm_config_cache: "$CI_PROJECT_DIR/.npm"
# Build stagebuild: stage: build script: - npm ci - npm run test - npm run build artifacts: paths: - dist/ expire_in: 24 hours
# Deploy to development channeldeploy_development: stage: deploy script: - npm install -g @capgo/cli - npx @capgo/cli bundle upload --apikey $CAPGO_TOKEN --channel development dependencies: - build only: - develop environment: name: development
# Deploy merge requests to test channelsdeploy_mr: stage: deploy script: - npm install -g @capgo/cli - CHANNEL_NAME="mr-$CI_MERGE_REQUEST_IID" - npx @capgo/cli channel add $CHANNEL_NAME --apikey $CAPGO_TOKEN || true - npx @capgo/cli bundle upload --apikey $CAPGO_TOKEN --channel $CHANNEL_NAME dependencies: - build only: - merge_requests environment: name: review/$CI_MERGE_REQUEST_IID url: https://your-app.com/channels/mr-$CI_MERGE_REQUEST_IID on_stop: cleanup_mr
# Cleanup MR channels when MR is closedcleanup_mr: stage: deploy script: - npm install -g @capgo/cli - npx @capgo/cli channel delete mr-$CI_MERGE_REQUEST_IID --apikey $CAPGO_TOKEN || true when: manual environment: name: review/$CI_MERGE_REQUEST_IID action: stop only: - merge_requests
# Deploy to stagingdeploy_staging: stage: deploy script: - npm install -g @capgo/cli - npx @capgo/cli bundle upload --apikey $CAPGO_TOKEN --channel staging dependencies: - build only: - develop environment: name: staging
# Deploy to productiondeploy_production: stage: deploy script: - npm install -g @capgo/cli - npx @capgo/cli bundle upload --apikey $CAPGO_TOKEN --channel production dependencies: - build only: - main environment: name: productionMulti-Umgebung mit manueller Genehmigung
Abschnitt mit dem Titel “Multi-Environment mit manueller Genehmigung”Für Produktionsbereitstellungen, die eine manuelle Genehmigung erfordern:
deploy_production: stage: deploy script: - npm install -g @capgo/cli - npx @capgo/cli bundle upload --apikey $CAPGO_TOKEN --channel production dependencies: - build only: - main when: manual environment: name: productionBranch-basierte Bereitstellungsstrategie
Abschnitt mit dem Titel “Branch-basierte Bereitstellungsstrategie”Bereitstellen Sie verschiedene Zweige in geeigneten Kanälen automatisch:
# Dynamic channel deployment based on branchdeploy: stage: deploy script: - npm install -g @capgo/cli - | if [ "$CI_COMMIT_REF_NAME" = "main" ]; then CHANNEL="production" elif [ "$CI_COMMIT_REF_NAME" = "develop" ]; then CHANNEL="staging" else CHANNEL="development" fi - npx @capgo/cli bundle upload --apikey $CAPGO_TOKEN --channel $CHANNEL dependencies: - build environment: name: $CHANNELSicherheitsbest Practices
Abschnitt mit dem Titel “Sicherheitsbest Practices”Geschützte Variablen
Abschnitt mit dem Titel “Geschützte Variablen”- Sensitive Variable markieren: Immer markieren Sie API-Tokens als geschützt und maskiert
- Zweig-Schutz: Verwenden Sie geschützte Variablen für Produktions-Deployments
- Zugriffssteuerung: Limitieren Sie den Zugriff auf Variablen nur auf Maintainer
- Regelmäßige Rotation: Rotieren Sie API-Tokens regelmäßig
Sichere Pipeline-Konfiguration
Abschnitt mit dem Titel “Sichere Pipeline-Konfiguration”# Use protected variables for productiondeploy_production: stage: deploy script: - npm install -g @capgo/cli - npx @capgo/cli bundle upload --apikey $CAPGO_TOKEN --channel production only: refs: - main variables: - $CI_COMMIT_REF_PROTECTED == "true"Überwachung und Benachrichtigungen
Abschnitt mit dem Titel “Überwachung und Benachrichtigungen”Slack-Integration
Abschnitt: Slack IntegrationHinzufügen Sie Slack-Benachrichtigungen zu Ihrem Pipeline:
notify_success: stage: .post image: alpine:latest before_script: - apk add --no-cache curl script: - | curl -X POST -H 'Content-type: application/json' \ --data '{"text":"✅ Capgo deployment successful for '"$CI_COMMIT_REF_NAME"'"}' \ $SLACK_WEBHOOK_URL when: on_success
notify_failure: stage: .post image: alpine:latest before_script: - apk add --no-cache curl script: - | curl -X POST -H 'Content-type: application/json' \ --data '{"text":"❌ Capgo deployment failed for '"$CI_COMMIT_REF_NAME"'"}' \ $SLACK_WEBHOOK_URL when: on_failureE-Mail-Benachrichtigungen
Abschnitt: E-Mail-BenachrichtigungenKonfigurieren Sie E-Mail-Benachrichtigungen in Ihren GitLab-Projekt-Einstellungen oder verwenden Sie den API:
notify_email: stage: .post script: - | curl --request POST \ --header "PRIVATE-TOKEN: $GITLAB_API_TOKEN" \ --form "to=team@yourcompany.com" \ --form "subject=Capgo Deployment Status" \ --form "body=Deployment of $CI_COMMIT_REF_NAME completed with status: $CI_JOB_STATUS" \ "https://gitlab.com/api/v4/projects/$CI_PROJECT_ID/emails" when: alwaysSchulung und Support
Abschnitt: Schulung und SupportHäufige Probleme
Abschnitt: Häufige ProblemePipeline fehlt mit “Capgo CLI nicht gefunden”:
# Debug CLI installationdebug_cli: script: - npm install -g @capgo/cli - which capgo || echo "Capgo CLI not found" - npx @capgo/cli --versionAuthentifizierungsfehler:
# Verify token configurationdebug_auth: script: - | if [ -z "$CAPGO_TOKEN" ]; then echo "CAPGO_TOKEN is not set" exit 1 fi echo "Token length: ${#CAPGO_TOKEN}"Build-Artikel nicht gefunden:
# List build outputsdebug_build: script: - ls -la dist/ - find dist/ -type f -name "*.js" -o -name "*.html"Debug-Pipeline
Abschnitt mit dem Titel “Debug-Pipeline”Fügen Sie Debug-Informationen hinzu, um Probleme zu lösen:
debug: stage: build script: - echo "Branch: $CI_COMMIT_REF_NAME" - echo "Commit: $CI_COMMIT_SHA" - echo "Build: $CI_PIPELINE_ID" - env | grep CI_ | sort only: - branchesNächste Schritte
Abschnitt mit dem Titel “Nächste Schritte”- Lernen Sie über Kanäle für verschiedene Bereitstellungsumgebungen zu verwalten
- Explore Benutzerdefinierte Speicherung für fortgeschrittene Bereitstellungsanforderungen
- Einrichten Encryption für sichere Bereitstellungen
- Verschlüsselung zur sicheren Bereitstellung Einstellen Sie die Anwendung von Updates an
Mit der GitLab CI/CD-Integration können Sie Ihre Capgo-Deployments automatisieren und sicherstellen, dass Ihre mobilen App-Benutzer konsistente und zuverlässige Updates erhalten.
Weiter mit GitLab CI/CD-Integration
Abschnitt mit dem Titel „Weiter mit GitLab CI/CD-Integration“Wenn Sie GitLab CI/CD verwenden GitLab CI/CD-Integration Verbinden Sie es mit __CAPGO_KEEP_0__ CI/CD Capgo CI/CD für den Produktworkflow in Capgo Native Builds für den Produktworkflow in Capgo Integrations für das Produktworkflow in Capgo Native Builds, Capgo Integrations für das Produktworkflow in Capgo Integrations, CI/CD-Integration zur Implementierungsdetail in CI/CD-Integration, und GitHub Aktionen-Integration zur Implementierungsdetail in GitHub Aktionen-Integration.