Langsung ke konten

Integrasi Bitbucket Pipelines

Integrasikan Capgo Live Updates dengan Bitbucket Pipelines untuk deploy update aplikasi secara otomatis setiap kali Anda push code. Panduan ini mencakup pengaturan automated build, testing, dan workflow deployment.

Sebelum mengatur integrasi Bitbucket Pipelines, pastikan Anda sudah memiliki:

  • Akun Bitbucket dengan repository
  • Akun Capgo dengan aplikasi yang sudah dikonfigurasi
  • Node.js dan npm/yarn yang terkonfigurasi di proyek Anda

Pertama, atur variabel yang diperlukan di repositori Bitbucket Anda:

  1. Buka repositori Bitbucket Anda
  2. Buka Pengaturan repositori → Pipelines → Variabel repositori
  3. Tambahkan variabel berikut:
Nama VariabelValueSecured
CAPGO_TOKENToken Capgo API Anda✅ Ya

Konfigurasi dasar untuk deploy ke production setiap kali push ke branch main:

# bitbucket-pipelines.yml - Simple Configuration
image: node:22
pipelines:
branches:
main:
- step:
name: Build and Deploy to Production
script:
- npm ci
- npm run test
- npm run build
- npm install -g @capgo/cli
- npx @capgo/cli bundle upload --apikey $CAPGO_TOKEN --channel production
artifacts:
- dist/**

Deploy feature branch ke test channel untuk review dan testing:

# Feature branch deployment
pipelines:
branches:
feature/*:
- step:
name: Deploy Feature Branch
script:
- npm ci
- npm run test
- npm run build
- BRANCH_NAME=$(echo $BITBUCKET_BRANCH | sed 's/[^a-zA-Z0-9-]/-/g')
- CHANNEL_NAME="feature-$BRANCH_NAME"
- npm install -g @capgo/cli
- npx @capgo/cli channel add $CHANNEL_NAME --apikey $CAPGO_TOKEN || true
- npx @capgo/cli bundle upload --apikey $CAPGO_TOKEN --channel $CHANNEL_NAME
artifacts:
- dist/**

Jika Anda menggunakan fitur enkripsi Capgo, Anda perlu menyimpan private key dengan aman di lingkungan CI/CD Anda.

Setelah menyiapkan encryption keys secara lokal, tambahkan private key Anda ke variabel Bitbucket:

Jendela Terminal
# Display your private key content (copy this output)
cat .capgo_key_v2

Tambahkan konten ini sebagai CAPGO_PRIVATE_KEY di variabel repositori Bitbucket Anda (tandai sebagai secured), lalu gunakan di pipeline:

# Deploy with encryption
- step:
name: Deploy to Capgo with Encryption
script:
- npm install -g @capgo/cli
- npx @capgo/cli bundle upload --apikey $CAPGO_TOKEN --key-data-v2 "$CAPGO_PRIVATE_KEY" --channel production

Untuk informasi lengkap mengenai setup dan pengelolaan banyak deployment channel, lihat dokumentasi Channels.

Konfigurasi lengkap dengan banyak environment dan deployment pull request:

# bitbucket-pipelines.yml - Advanced Multi-Channel Configuration
image: node:22
definitions:
steps:
- step: &build-step
name: Build Application
script:
- npm ci
- npm run test
- npm run build
artifacts:
- dist/**
- step: &deploy-step
name: Deploy to Capgo
script:
- npm install -g @capgo/cli
- npx @capgo/cli bundle upload --apikey $CAPGO_TOKEN --channel $CHANNEL_NAME
pipelines:
branches:
main:
- step:
<<: *build-step
- step:
<<: *deploy-step
name: Deploy to Production
deployment: production
trigger: manual
script:
- export CHANNEL_NAME=production
- npm install -g @capgo/cli
- npx @capgo/cli bundle upload --apikey $CAPGO_TOKEN --channel $CHANNEL_NAME
develop:
- step:
<<: *build-step
- step:
<<: *deploy-step
name: Deploy to Development
deployment: development
script:
- export CHANNEL_NAME=development
- npm install -g @capgo/cli
- npx @capgo/cli bundle upload --apikey $CAPGO_TOKEN --channel $CHANNEL_NAME
pull-requests:
'**':
- step:
<<: *build-step
- step:
name: Deploy PR to Test Channel
script:
- CHANNEL_NAME="pr-$BITBUCKET_PR_ID"
- npm install -g @capgo/cli
- npx @capgo/cli channel add $CHANNEL_NAME --apikey $CAPGO_TOKEN || true
- npx @capgo/cli bundle upload --apikey $CAPGO_TOKEN --channel $CHANNEL_NAME
artifacts:
- dist/**

Untuk skenario deployment kompleks dengan environment staging dan production:

# Multi-environment pipeline
image: node:22
pipelines:
branches:
main:
- step:
name: Build
script:
- npm ci
- npm run test
- npm run build
artifacts:
- dist/**
- step:
name: Deploy to Staging
deployment: staging
script:
- npm install -g @capgo/cli
- npx @capgo/cli bundle upload --apikey $CAPGO_TOKEN --channel staging
- step:
name: Deploy to Production
deployment: production
trigger: manual
script:
- npm install -g @capgo/cli
- npx @capgo/cli bundle upload --apikey $CAPGO_TOKEN --channel production
develop:
- step:
name: Build and Deploy to Development
script:
- npm ci
- npm run test
- npm run build
- npm install -g @capgo/cli
- npx @capgo/cli bundle upload --apikey $CAPGO_TOKEN --channel development
artifacts:
- dist/**

Deploy berbagai branch ke channel yang sesuai secara otomatis:

# Dynamic channel deployment
image: node:22
definitions:
scripts:
- script: &determine-channel |
if [ "$BITBUCKET_BRANCH" = "main" ]; then
export CHANNEL_NAME="production"
elif [ "$BITBUCKET_BRANCH" = "develop" ]; then
export CHANNEL_NAME="staging"
else
export CHANNEL_NAME="development"
fi
echo "Deploying to channel: $CHANNEL_NAME"
pipelines:
default:
- step:
name: Build and Deploy
script:
- npm ci
- npm run test
- npm run build
- *determine-channel
- npm install -g @capgo/cli
- npx @capgo/cli bundle upload --apikey $CAPGO_TOKEN --channel $CHANNEL_NAME
artifacts:
- dist/**

Optimalkan waktu build dengan langkah paralel:

# Parallel execution pipeline
image: node:22
pipelines:
branches:
main:
- parallel:
- step:
name: Run Tests
script:
- npm ci
- npm run test
- step:
name: Lint Code
script:
- npm ci
- npm run lint
- step:
name: Build Application
script:
- npm ci
- npm run build
artifacts:
- dist/**
- step:
name: Deploy to Production
deployment: production
script:
- npm install -g @capgo/cli
- npx @capgo/cli bundle upload --apikey $CAPGO_TOKEN --channel production
  1. Variabel Terproteksi: Selalu tandai token API sebagai secured
  2. Variabel Lingkungan: Gunakan variabel spesifik deployment jika diperlukan
  3. Kontrol Akses: Batasi akses repositori hanya untuk anggota tim yang berwenang
  4. Rotasi Token: Rotasi token Capgo API Anda secara rutin

Konfigurasikan lingkungan deployment untuk keamanan yang lebih baik:

# Deployment with environment restrictions
pipelines:
branches:
main:
- step:
name: Deploy to Production
deployment: production
trigger: manual
script:
- npm install -g @capgo/cli
- npx @capgo/cli bundle upload --apikey $CAPGO_TOKEN --channel production

Tambahkan notifikasi Slack ke pipeline Anda:

# Pipeline with Slack notifications
pipelines:
branches:
main:
- step:
name: Build and Deploy
script:
- npm ci
- npm run test
- npm run build
- npm install -g @capgo/cli
- npx @capgo/cli bundle upload --apikey $CAPGO_TOKEN --channel production
after-script:
- |
if [ $BITBUCKET_EXIT_CODE -eq 0 ]; then
curl -X POST -H 'Content-type: application/json' \
--data '{"text":"✅ Capgo deployment successful for '$BITBUCKET_BRANCH'"}' \
$SLACK_WEBHOOK_URL
else
curl -X POST -H 'Content-type: application/json' \
--data '{"text":"❌ Capgo deployment failed for '$BITBUCKET_BRANCH'"}' \
$SLACK_WEBHOOK_URL
fi

Konfigurasikan notifikasi email melalui fitur bawaan Bitbucket atau gunakan layanan eksternal:

# Email notification step
- step:
name: Send Notification
script:
- |
curl -X POST \
-H "Content-Type: application/json" \
-d '{
"to": "team@yourcompany.com",
"subject": "Capgo Deployment Status",
"body": "Deployment of '$BITBUCKET_BRANCH' completed with status: '$BITBUCKET_EXIT_CODE'"
}' \
$EMAIL_SERVICE_URL
condition:
result: [successful, failed]

Pipeline gagal dengan pesan “Capgo CLI not found”:

# Debug CLI installation
- step:
name: Debug CLI
script:
- npm install -g @capgo/cli
- which capgo || echo "Capgo CLI not found"
- npx @capgo/cli --version

Error autentikasi:

# Verify token configuration
- step:
name: Debug Auth
script:
- |
if [ -z "$CAPGO_TOKEN" ]; then
echo "CAPGO_TOKEN is not set"
exit 1
fi
echo "Token length: ${#CAPGO_TOKEN}"

Build artifacts tidak ditemukan:

# List build outputs
- step:
name: Debug Build
script:
- ls -la dist/
- find dist/ -type f -name "*.js" -o -name "*.html"

Tambahkan informasi debugging untuk troubleshooting masalah:

# Debug pipeline
pipelines:
branches:
main:
- step:
name: Debug Information
script:
- echo "Branch: $BITBUCKET_BRANCH"
- echo "Commit: $BITBUCKET_COMMIT"
- echo "Build: $BITBUCKET_BUILD_NUMBER"
- env | grep BITBUCKET_ | sort
- step:
name: Build and Deploy
script:
- npm ci
- npm run test
- npm run build
- npm install -g @capgo/cli
- npx @capgo/cli bundle upload --apikey $CAPGO_TOKEN --channel production

Aktifkan validasi pipeline untuk mendeteksi error konfigurasi:

# Enable pipeline validation
options:
docker: true
size: 2x
pipelines:
branches:
main:
- step:
name: Validate Pipeline
script:
- echo "Pipeline validation successful"
- step:
name: Build and Deploy
script:
# ... deployment steps
  • Pelajari tentang Channels untuk mengelola berbagai environment deployment
  • Jelajahi Penyimpanan Kustom untuk skenario deployment tingkat lanjut
  • Setup Enkripsi untuk deployment yang aman
  • Konfigurasi Perilaku Update untuk kustomisasi cara update diterapkan

Dengan integrasi Bitbucket Pipelines, Anda dapat mengotomatiskan deployment Capgo dan memastikan update yang konsisten serta andal bagi pengguna aplikasi mobile Anda.

Lanjutkan dari Integrasi Bitbucket Pipelines

Bagian berjudul “Lanjutkan dari Integrasi Bitbucket Pipelines”

Jika Anda menggunakan Integrasi Bitbucket Pipelines untuk merencanakan otomatisasi CI/CD, hubungkan dengan Capgo CI/CD untuk alur kerja produk di Capgo CI/CD, Capgo Native Build untuk alur kerja produk di Capgo Native Builds, Integrasi Capgo untuk alur kerja produk di Capgo Integrations, Integrasi CI/CD untuk detail implementasi di Integrasi CI/CD, dan Integrasi GitHub Actions untuk detail implementasi di Integrasi GitHub Actions.