GitLab CI/CD-Integration
Kopieren Sie eine Einrichtungsanweisung mit den Installationsanweisungen und dem vollständigen Markdown-Guide für diesen Plugin.
Integrieren Sie 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 automatisierten 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:
- Ein GitLab-Konto mit einem Projekt-Repository
- Ein Capgo-Konto mit einer konfigurierten App
- 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 in Ihrem GitLab-Projekt die notwendigen Variablen einrichten:
- Navigieren Sie zu Ihrem GitLab-Projekt
- Gehen Sie 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“Feature Branch Deployments
Abschnitt mit dem Titel “Branch-Features-Deployments”Deployen Sie Feature-Branches 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 create $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_NAMEAbschnitt mit dem Titel “Mit Verschlüsselung arbeiten”
Wenn Sie die Verschlüsselungsfunktion von __CAPGO_KEEP_0__ verwendenAbschnitt mit dem Titel “Kanäle” Capgo’s encryption feature, Sie müssen Ihren privaten Schlüssel sicher in Ihrem CI/CD-Umgebung speichern.
Nachdem Sie die Verschlüsselungsschlüssel lokal eingerichtet haben fügen Sie Ihren privaten Schlüssel zu 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-Projektvariablen (markieren Sie als geschützt und maskiert) 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-Kanal-Konfiguration
Abschnitt mit dem Titel “Multi-Kanal-Konfiguration”Für umfassende Informationen zum Einrichten und Verwalten mehrerer Bereitstellungskanäle, sehen Sie sich die Kanäldokumentation.
Vollständige Konfiguration mit mehreren Umgebungen und Merge-Request-Deployments:
# .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 create $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-Umgebung 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: productionVerzweigungsbezogene Bereitstellungsstrategie
Abschnitt mit dem Titel „Verzweigungsbezogene Bereitstellungsstrategie“Bereitstellen Sie verschiedene Zweige automatisch in den entsprechenden Kanälen:
# 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“- Sensible Variablen markieren: Alle API-Tokens immer als geschützt und maskiert markieren
- Zweigschutz: Verwenden Sie geschützte Variablen für Produktionsbereitstellungen
- Zugriffssteuerung: Limitieren Sie den Zugriff auf Variablen nur auf Maintainer
- Regelmäßige Rotation: Rotieren Sie API-Tokens regelmäßig
Sichere Pipeline-Konfiguration
Kopieren Sie zum Zwischenspeichern# 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"Kopieren Sie zum Zwischenspeichern
Slack-IntegrationBranch Protection
Abschnitt mit dem Titel “Slack-Integration”Fügen Sie Slack-Benachrichtigungen zu Ihrem Pipeline hinzu:
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 mit dem Titel “E-Mail-Benachrichtigungen”Konfigurieren 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: alwaysFehlersuche
Abschnitt mit dem Titel “Fehlersuche”Häufige Probleme
Abschnitt mit dem Titel “Häufige Probleme”Pipeline fehlschlägt 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: Debug-PipelineFü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: Nächste Schritte- Mehr erfahren Kanäle um verschiedene Bereitstellungsumgebungen zu verwalten
- Erkunden Benutzerdefinierte Speicherung für fortgeschrittene Bereitstellungsszenarien
- Einrichten Verschlüsselung für sichere Bereitstellungen
- Konfigurieren Aktualisierungsverhalten um zu customisieren, wie Updates angewendet werden
Mit der GitLab CI/CD-Integration können Sie Ihre Capgo-Bereitstellungen automatisieren und sicherstellen, dass Ihre mobilen App-Benutzer konsistente und zuverlässige Updates erhalten.