メニューに進む

Bitbucket Pipelines と Capgo の統合

Integrate Capgo Live Updates with Bitbucket Pipelines to automatically deploy your app updates whenever you push code changes. This guide covers setting up automated builds, testing, and deployment workflows.

Before setting up Bitbucket Pipelines integration, ensure you have:

  • Bitbucketアカウントとリポジトリ
  • Capgoアカウントとアプリの設定
  • Node.jsとnpm/yarnがプロジェクトに設定されている

ステップ 1: リポジトリ変数の設定

セクション「ステップ 1: リポジトリ変数の設定」

最初に、Bitbucketリポジトリで必要な変数を設定してください。

  1. Bitbucketリポジトリに移動
  2. Go to リポジトリ設定PipeLineリポジトリ変数
  3. 以下の変数を追加します。
変数名暗号化
CAPGO_TOKENCapgo API のトークン✅ はい

基本的な設定で、メインブランチへのプッシュごとにプロダクションにデプロイされます。

# 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/**

機能ブランチをテストチャンネルにデプロイしてレビューとテストを行います。

# 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 create $CHANNEL_NAME --apikey $CAPGO_TOKEN || true
- npx @capgo/cli bundle upload --apikey $CAPGO_TOKEN --channel $CHANNEL_NAME
artifacts:
- dist/**

あなたが Capgoの暗号化機能を使用している場合、CI/CD環境で秘密鍵を安全に保存する必要があります。

暗号化キーを設定した後 ローカルに暗号化キーを設定した後、Bitbucket変数に秘密鍵を追加してください。 Bitbucketパイプラインの統合

ターミナル画面
# Display your private key content (copy this output)
cat .capgo_key_v2

Bitbucketリポジトリ変数に追加 CAPGO_PRIVATE_KEY Bitbucketリポジトリ変数に追加してください (マークしてセキュア化)、そしてパイプラインで使用してください:

# 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

複数のデプロイチャンネルの設定と管理に関する詳細情報については、 チャンネルドキュメント.

複数の環境とプルリクエストデプロイの完全な構成:

# 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 create $CHANNEL_NAME --apikey $CAPGO_TOKEN || true
- npx @capgo/cli bundle upload --apikey $CAPGO_TOKEN --channel $CHANNEL_NAME
artifacts:
- dist/**

複雑なデプロイシナリオのためのステージングとプロダクション環境:

# 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/**

自動的に異なるブランチを適切なチャンネルに展開します:

# 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/**

ビルド時間を最適化する並列ステップで:

# 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. セキュアな変数: API トークンは常にセキュアなマークで表示する
  2. 環境変数: 必要に応じてデプロイ固有の変数を使用します
  3. アクセス制御: 認可されたチームメンバーのみにリポジトリへのアクセスを制限します
  4. トークンローテーション: 定期的に Capgo API トークンをローテーションします

デプロイメント環境

「デプロイメント環境」

デプロイメント環境をより安全に設定するには:

# 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

監視と通知

「監視と通知」

Slack の統合

「Slack の統合」

パイプラインに Slack の通知を追加します:

# 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

メール通知

「メール通知」

Bitbucket の組み込み機能または外部サービスを使用してメール通知を設定します:

# 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]

トラブルシューティング

「トラブルシューティング」

一般的な問題

「一般的な問題」

パイプラインが “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

認証エラー:

# 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}"

ビルドアーティファクトが見つかりません:

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

問題を解決するためにデバッグ情報を追加します:

# 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

有効化 Pipelines の検証

# 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

次のステップ

チャンネル
  • 異なるデプロイ環境を管理する 詳細を確認 カスタムストレージ
  • 高度なデプロイシナリオ用 設定 暗号化
  • Copy to clipboard Next Steps 安全なデプロイメントのために
  • 設定 更新の動作 更新の適用方法をカスタマイズするために

Capgoのデプロイメントを自動化し、モバイルアプリのユーザーに一貫した、信頼性の高い更新を保証することができます。

__CAPGO_KEEP_0__のBitbucket Pipelines統合を続ける

セクション:「__CAPGO_KEEP_0__のBitbucket Pipelines統合を続ける」

__CAPGO_KEEP_0__を使用している場合 __CAPGO_KEEP_0__ Bitbucket Pipelines統合 __CAPGO_KEEP_0__ CI/CD Capgo CI/CDの製品ワークフロー Capgo Capgo Native Builds Capgo Native Builds Capgo Integrations Capgo Integrations __CAPGO_KEEP_0__ Integrations CI/CD GitHub Actions Integration GitHub Actions Integration