Integrasi GitLab CI/CD
Copy prompt pengaturan dengan langkah-langkah instalasi dan panduan markdown lengkap untuk plugin ini.
Integrasikan Capgo Live Updates dengan GitLab CI/CD untuk mendeploykan pembaruan aplikasi secara otomatis setiap kali Anda memasukkan code perubahan. Petunjuk ini mencakup pengaturan build otomatis, pengujian, dan alur kerja pengiriman.
Prasyarat
Bab berjudul “Prasyarat”Sebelum mengatur integrasi GitLab CI/CD, pastikan Anda memiliki:
- Akun GitLab dengan repositori proyek
- Salinan Capgo dengan aplikasi yang telah dikonfigurasi
- Node.js dan npm/yarn yang telah dikonfigurasi di proyek Anda
Pengaturan GitLab CI/CD
Judul Bagian: “Mengatur GitLab CI/CD”Langkah 1: Konfigurasi Variabel Lingkungan
Judul Bagian: “Langkah 1: Konfigurasi Variabel Lingkungan”Pertama-tama, atur variabel yang diperlukan di proyek GitLab Anda:
- Pergi ke proyek GitLab Anda
- Pergi ke Pengaturan → CI/CD → Variabel
- Tambahkan variabel berikut:
| Nama Variabel | Nilai | Terlindungi | Menggunakan Pemakaian |
|---|---|---|---|
CAPGO_TOKEN | Kunci Capgo API Anda | ✅ Ya | ✅ Ya |
Sederhana
Judul Bagian “Sederhana”Konfigurasi dasar yang mengirimkan ke produksi setiap kali push ke cabang utama:
# .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: - mainPenyebaran Cabang Fitur
Judul Bagian “Penyebaran Cabang Fitur”Sebar cabang fitur ke saluran uji untuk tinjauan dan pengujian:
# 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_NAMEMenggunakan Enkripsi
Bab berjudul “Menggunakan Enkripsi”Jika Anda menggunakan fitur enkripsi Capgo, Anda perlu menyimpan kunci pribadi Anda dengan aman di lingkungan CI/CD Anda.
Setelah mengatur kunci enkripsi lokal, tambahkan kunci pribadi Anda ke variabel GitLab:
# Display your private key content (copy this output)cat .capgo_key_v2Tambahkan konten ini sebagai CAPGO_PRIVATE_KEY dalam variabel proyek GitLab Anda (tandai sebagai terlindungi dan tersembunyi), kemudian gunakan di pipeline:
# 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 productionBagian berjudul “Konfigurasi Multi-Channel”
__CAPGO_KEEP_0__Untuk informasi yang lebih komprehensif tentang pengaturan dan pengelolaan beberapa saluran pengiriman, lihat Dokumentasi Saluran.
Pengaturan lengkap dengan beberapa lingkungan dan pengiriman permintaan gabungan:
# .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: productionPengaturan Lingkungan Multi dengan Persetujuan Manual
Bab berjudul “Pengaturan Lingkungan Multi dengan Persetujuan Manual”Untuk pengiriman produksi yang memerlukan persetujuan manual:
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: productionStrategi Pengiriman Berdasarkan Cabang
Bab berjudul “Strategi Pengiriman Berdasarkan Cabang”Pengiriman cabang yang berbeda ke saluran yang tepat secara otomatis:
# 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: $CHANNELPraktik Keamanan Terbaik
Judul Bagian “Praktik Keamanan Terbaik”Variabel Terlindungi
Judul Bagian “Variabel Terlindungi”- Tandai Variabel yang Sensitive: Selalu tandai token API sebagai terlindungi dan tersembunyi
- Pengamanan Cabang: Gunakan variabel terlindungi untuk pengiriman produksi
- Kontrol Akses: Batasi akses variabel hanya untuk pemelihara
- Rotasi Teratur: Rotasi token API secara teratur
Konfigurasi Pipa Sumber Daya yang Aman
Judul Bagian “Konfigurasi Pipa Sumber Daya yang Aman”# 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"Pengawasan dan Pemberitahuan
Judul Bagian “Pengawasan dan Pemberitahuan”Pengintegrasian Slack
Judul Bagian “Pengintegrasian Slack”Tambahkan pemberitahuan Slack ke pipa Anda:
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_failurePemberitahuan Email
Judul Bagian “Pemberitahuan Email”Konfigurasi pemberitahuan email di pengaturan proyek GitLab Anda atau gunakan 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: alwaysPengaturan Masalah
Bagian berjudul “Pengaturan Masalah”Masalah Umum
Bagian berjudul “Masalah Umum”Aliran gagal dengan “Capgo CLI tidak ditemukan”:
# Debug CLI installationdebug_cli: script: - npm install -g @capgo/cli - which capgo || echo "Capgo CLI not found" - npx @capgo/cli --versionKesalahan Autentikasi:
# Verify token configurationdebug_auth: script: - | if [ -z "$CAPGO_TOKEN" ]; then echo "CAPGO_TOKEN is not set" exit 1 fi echo "Token length: ${#CAPGO_TOKEN}"Jenazah Bangunan tidak ditemukan:
# List build outputsdebug_build: script: - ls -la dist/ - find dist/ -type f -name "*.js" -o -name "*.html"Debug Aliran
Judul Bagian: “Debug Pipeline”Tambahkan informasi debugging untuk menyelesaikan masalah:
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: - branchesLangkah-Langkah Selanjutnya
Judul Bagian: “Langkah-Langkah Selanjutnya”- Belajar tentang Saluran Judul fitur: Saluran Rilis Capgo. Halaman: Halaman Pemasaran Solusi Capgo. Peran: Label UI singkat atau item navigasi. Dilihat di: halaman solutions/white-label.astro.
- untuk mengelola lingkungan pengiriman yang berbeda Jelajahi Penggunaan Penyimpanan Kustom
- untuk skenario pengiriman yang lebih maju Enkripsi untuk pengaturan yang aman
- Konfigurasi Perilaku Update untuk mengatur bagaimana update diterapkan
Dengan integrasi GitLab CI/CD, Anda dapat mengautomatisasi Capgo Anda dan memastikan update yang konsisten dan dapat diandalkan untuk pengguna aplikasi seluler Anda.
Teruskan dari Integrasi GitLab CI/CD
Judul bagian “Teruskan dari Integrasi GitLab CI/CD”Jika Anda menggunakan Integrasi GitLab CI/CD untuk merencanakan otomatisasi CI/CD, hubungkannya dengan Capgo CI/CD untuk alur kerja produk di Capgo CI/CD, Capgo Pembangunan Asli untuk alur kerja produk di Capgo Pembangunan Asli, Capgo Integrasi for the product workflow in Capgo Integrations, untuk alur kerja produk di __CAPGO_KEEP_0__ Integrasi, Pengintegrasian CI/CD GitHub Actions Integration for the implementation detail in GitHub Actions Integration.