从 Bitbucket Pipelines 集成继续
复制安装提示并包含此插件的完整Markdown指南。
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.
前提条件
前提条件在设置Bitbucket Pipelines集成之前,请确保您有:
- 一个拥有仓库的 Bitbucket 账户
- 一个 Capgo 账户并且配置了应用
- 在项目中配置了 Node.js 和 npm/yarn
设置 Bitbucket Pipelines
设置 Bitbucket Pipelines步骤 1:配置仓库变量
步骤 1:配置仓库变量首先,在 Bitbucket 仓库中设置必要的变量:
- 前往您的 Bitbucket 仓库
- 前往 仓库设置 → 管道 → 仓库变量
- 添加以下变量:
| 变量名称 | 值 | 加密 |
|---|---|---|
CAPGO_TOKEN | 您的Capgo API令牌 | ✅ 是 |
简单
标题:简单基本配置,推送到主分支后即部署到生产环境:
# bitbucket-pipelines.yml - Simple Configurationimage: 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 deploymentpipelines: 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变量:
# Display your private key content (copy this output)cat .capgo_key_v2在您的 Bitbucket 仓库变量中添加此内容(标记为安全),然后在管道中使用它: CAPGO_PRIVATE_KEY 复制到剪贴板
# 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 Configurationimage: 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 pipelineimage: 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/**基于分支的部署策略
Branch-Based Deployment Strategy自动部署不同分支到适当的频道:
# Dynamic channel deploymentimage: 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 pipelineimage: 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安全最佳实践
安全最佳实践仓库变量
仓库变量- 安全变量: 始终将 API 标记为安全变量
- 环境变量: 根据需要使用部署特定的变量
- 访问控制: 限制授权团队成员访问仓库
- 令牌轮换: 定期轮换您的 Capgo API 令牌
部署环境
部署环境配置部署环境以提高安全性:
# Deployment with environment restrictionspipelines: 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 notificationspipelines: 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 未找到”而失败:
# 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 pipelinepipelines: 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管道验证
标题:管道验证启用管道验证以捕捉配置错误:
# Enable pipeline validationoptions: docker: true size: 2x
pipelines: branches: main: - step: name: Validate Pipeline script: - echo "Pipeline validation successful" - step: name: Build and Deploy script: # ... deployment steps下一步
下一步通过 Bitbucket Pipelines 集成,您可以自动化您的 Capgo 部署并确保您的移动应用程序用户始终获得一致可靠的更新。
从 Bitbucket Pipelines Integration 中继续
标题:从 Bitbucket Pipelines Integration 中继续如果您正在使用 Bitbucket Pipelines Integration 来规划 CI/CD 自动化,连接它与 Capgo CI/CD 为 Capgo CI/CD 产品工作流程 Capgo 原生构建 为产品工作流程在 Capgo 原生构建 Capgo 集成 为产品工作流程在 Capgo 集成 CI/CD 集成 为 CI/CD 集成的实现细节 GitHub 动作集成 为 GitHub 动作集成的实现细节