GitHub アクションズ統合
インストールステップとこのプラグインのフルマークダウンガイドのすべてのステップを含むコピー可能な設定プロンプトをコピーする
Integrate Capgo Live Updates with GitHub Actions to automatically deploy your app updates whenever you push code changes. This guide covers setting up automated builds, testing, and deployment workflows using GitHub’s powerful CI/CD platform.
前提条件
前提条件Before setting up GitHub Actions integration, ensure you have:
- A GitHub repository with your app’s source code
- A Capgo account with an app configured
- Node.jsとnpm/yarnがプロジェクトに設定されている
- GitHub Actionsがリポジトリに有効
GitHubシークレットの設定
「GitHubシークレットの設定」ステップ 1: リポジトリのシークレットの設定
「ステップ 1: リポジトリのシークレットの設定」GitHub リポジトリに必要なシークレットを設定する
- GitHub リポジトリにアクセスする
- Go to 設定 → シークレットと変数 → Actions
- クリック 新しいリポジトリシークレット と次の値を追加します。
| シークレット名 | 値 |
|---|---|
CAPGO_TOKEN | あなたの Capgo API トークン |
シンプルなプロダクション デプロイ
「シンプルなプロダクション デプロイ」メイン ブランチにプッシュされるたびに、プロダクションにデプロイする基本的な構成から始めましょう:
# Simple GitHub Actions Workflow for Capgo Live Updatesname: Deploy to Capgo
on: push: branches: - main
jobs: deploy: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v6
- name: Setup Node.js uses: actions/setup-node@v6 with: node-version: '24' cache: 'npm'
- name: Install, test and build run: | npm ci npm run test npm run build
- name: Deploy to Capgo run: | npm install -g @capgo/cli npx @capgo/cli bundle upload --channel production env: CAPGO_TOKEN: ${{ secrets.CAPGO_TOKEN }} # For encrypted uploads, add: --key-data-v2 "${{ secrets.CAPGO_PRIVATE_KEY }}"高度なマルチ チャンネル構成
「高度なマルチ チャンネル構成」機能ブランチのデプロイ
「機能ブランチのデプロイ」機能ブランチをテスト用の仮想チャンネルにデプロイしてください:
# Feature branch deploymentname: Deploy Feature Branch to Capgo
on: push: branches: - 'feature/**'
jobs: deploy-feature: runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 - uses: actions/setup-node@v6 with: node-version: '24' cache: 'npm'
- run: | npm ci npm run test npm run build
- name: Deploy to feature channel run: | CHANNEL_NAME=$(echo "${{ github.ref_name }}" | sed 's/[^a-zA-Z0-9]/-/g' | tr '[:upper:]' '[:lower:]') npm install -g @capgo/cli npx @capgo/cli channel create $CHANNEL_NAME --apikey ${{ secrets.CAPGO_TOKEN }} || true npx @capgo/cli bundle upload --apikey ${{ secrets.CAPGO_TOKEN }} --channel $CHANNEL_NAME暗号化の使用
「暗号化の使用」GitHub Actionsを使用している場合 Capgoの暗号化機能を使用している場合、あなたのプライベートキーを安全にCI/CD環境に保存する必要があります。
設定後 暗号化キーをローカルに設定した後 あなたのプライベートキーをGitHubシークレットに追加してください
# Display your private key content (copy this output)cat .capgo_key_v2あなたの__CAPGO_KEEP_0__リポジトリのシークレットにこの内容を追加して、ワークフローで使用してください CAPGO_PRIVATE_KEY in your GitHub repository secrets, then use it in workflows:
# Deploy with encryption- name: Deploy to Capgo with Encryption run: | npm install -g @capgo/cli npx @capgo/cli bundle upload --apikey ${{ secrets.CAPGO_TOKEN }} --key-data-v2 "${{ secrets.CAPGO_PRIVATE_KEY }}" --channel productionマルチチャネル設定
マルチチャネル設定マルチチャネル設定の詳細については、チャンネルドキュメントを参照してください 開発、プルリクエスト、プロダクションデプロイメントの完全なワークフロー:.
クリップボードにコピー
# Complete multi-environment workflowname: Deploy to Capgo
on: push: branches: [main, develop] pull_request: branches: [main, develop]
jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 - uses: actions/setup-node@v6 with: node-version: '24' cache: 'npm'
- run: | npm ci npm run test npm run build
- uses: actions/upload-artifact@v6 with: name: dist path: dist/
deploy-development: if: github.ref == 'refs/heads/develop' needs: build runs-on: ubuntu-latest environment: development steps: - uses: actions/setup-node@v6 with: node-version: '24'
- uses: actions/download-artifact@v4 with: name: dist path: dist/
- run: | npm install -g @capgo/cli npx @capgo/cli bundle upload --apikey ${{ secrets.CAPGO_TOKEN }} --channel development
deploy-pr: if: github.event_name == 'pull_request' needs: build runs-on: ubuntu-latest steps: - uses: actions/setup-node@v6 with: node-version: '24'
- uses: actions/download-artifact@v4 with: name: dist path: dist/
- name: Deploy to PR channel run: | CHANNEL_NAME="pr-${{ github.event.number }}" npm install -g @capgo/cli npx @capgo/cli channel create $CHANNEL_NAME --apikey ${{ secrets.CAPGO_TOKEN }} || true npx @capgo/cli bundle upload --apikey ${{ secrets.CAPGO_TOKEN }} --channel $CHANNEL_NAME
- name: Comment PR uses: actions/github-script@v7 with: script: | github.rest.issues.createComment({ issue_number: context.issue.number, owner: context.repo.owner, repo: context.repo.repo, body: `🚀 This PR has been deployed to Capgo channel: \`pr-${{ github.event.number }}\`\n\nTo test this update in your app, configure it to use this channel. [Learn how to configure channels →](/docs/live-updates/channels/#configuring-the-channel-in-your-app)` })
deploy-production: if: github.ref == 'refs/heads/main' needs: build runs-on: ubuntu-latest environment: production steps: - uses: actions/setup-node@v6 with: node-version: '24'
- uses: actions/download-artifact@v4 with: name: dist path: dist/
- run: | npm install -g @capgo/cli npx @capgo/cli bundle upload --apikey ${{ secrets.CAPGO_TOKEN }} --channel production機能チャンネルのクリーンアップ
Section titled “Cleanup Feature Channels”ブランチが削除されたときに自動的に機能チャンネルをクリーンアップします:
name: Cleanup Feature Channels
on: delete:
jobs: cleanup: runs-on: ubuntu-latest if: github.event.ref_type == 'branch' && startsWith(github.event.ref, 'feature/') steps: - uses: actions/setup-node@v6 with: node-version: '24'
- name: Delete Capgo channel run: | CHANNEL_NAME=$(echo "${{ github.event.ref }}" | sed 's/[^a-zA-Z0-9]/-/g' | tr '[:upper:]' '[:lower:]') npm install -g @capgo/cli npx @capgo/cli channel delete $CHANNEL_NAME --apikey ${{ secrets.CAPGO_TOKEN }} || trueセキュリティとベストプラクティス
Section titled “Security and Best Practices”環境保護ルール
環境保護ルールのセクションGitHubで環境保護ルールを設定する
- Go to 設定 → 環境 リポジトリ内
- 環境を作成する
development,staging,production - プロダクション環境の場合、追加する
- 必要なレビュアー: デプロイを承認する必要があるチームメンバーを追加する
- 待機時間: デプロイ前に待機時間を追加する (任意)
- 展開ブランチ: 限定
mainブランチのみ
セキュアなシークレット管理
セクション「セキュアなシークレット管理」環境固有のシークレットを使用:
# Use different secrets per environmentdeploy-production: environment: production steps: - name: Deploy to Production run: | npx @capgo/cli bundle upload \ --apikey ${{ secrets.CAPGO_PROD_TOKEN }} \ --app ${{ secrets.CAPGO_PROD_APP_ID }} \ --channel production監視と通知
セクション「監視と通知」Slack統合
セクション「Slack統合」ワークフローにSlack通知を追加:
name: Deploy with Notifications
jobs: deploy: runs-on: ubuntu-latest steps: # ... deployment steps
- name: Notify Slack on Success if: success() uses: 8398a7/action-slack@v3 with: status: success text: '✅ Capgo deployment successful!' fields: repo,message,commit,author,action,eventName,ref,workflow env: SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
- name: Notify Slack on Failure if: failure() uses: 8398a7/action-slack@v3 with: status: failure text: '❌ Capgo deployment failed!' fields: repo,message,commit,author,action,eventName,ref,workflow env: SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}ディスコード統合
「ディスコード統合」セクションディスコードに通知を送信:
- name: Discord notification if: always() uses: Ilshidur/action-discord@master with: args: | Capgo deployment ${{ job.status }}! App: ${{ secrets.CAPGO_APP_ID }} Channel: ${{ github.ref_name }} Commit: ${{ github.sha }} env: DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }}メール通知
「メール通知」セクションメール通知を設定:
- name: Send email notification if: failure() uses: dawidd6/action-send-mail@v3 with: server_address: smtp.gmail.com server_port: 465 username: ${{ secrets.EMAIL_USERNAME }} password: ${{ secrets.EMAIL_PASSWORD }} subject: 'Capgo Deployment Failed - ${{ github.repository }}' to: team@yourcompany.com from: ci-cd@yourcompany.com body: | Deployment failed for ${{ github.repository }} Branch: ${{ github.ref_name }} Commit: ${{ github.sha }} Workflow: ${{ github.workflow }}トラブルシューティング
「トラブルシューティング」セクションデバッグワークフロー
Debug ワークフロー問題を解決するためのデバッグステップを追加してください:
- name: Debug environment run: | echo "Node version: $(node --version)" echo "NPM version: $(npm --version)" echo "Working directory: $(pwd)" echo "Files in dist/: $(ls -la dist/ || echo 'No dist directory')" echo "Environment variables:" env | grep -E "(GITHUB_|CAPGO_)" | sort
- name: Test Capgo CLI run: | npx @capgo/cli --version npx @capgo/cli app debug --apikey ${{ secrets.CAPGO_TOKEN }} --app ${{ secrets.CAPGO_APP_ID }}一般的な問題と解決策
一般的な問題と解決策ワークフローが “CAPGO_TOKEN not found” というエラーで失敗します:
- name: Verify secrets run: | if [ -z "${{ secrets.CAPGO_TOKEN }}" ]; then echo "ERROR: CAPGO_TOKEN secret is not set" exit 1 fi echo "CAPGO_TOKEN is set (length: ${#CAPGO_TOKEN})" env: CAPGO_TOKEN: ${{ secrets.CAPGO_TOKEN }}ビルドアーティファクトが見つかりません:
- name: Debug artifacts run: | echo "Checking for build artifacts..." ls -la dist/ || echo "No dist directory found" find . -name "*.js" -o -name "*.html" | head -10ネットワーク接続の問題:
- name: Test connectivity run: | ping -c 3 api.capgo.io || echo "Ping failed" curl -I https://api.capgo.io/health || echo "Health check failed"再利用可能なワークフロー
「再利用可能なワークフロー」プロジェクト間で一貫性を保つために、再利用可能なワークフローを作成します:
name: Reusable Capgo Deploy
on: workflow_call: inputs: environment: required: true type: string channel: required: true type: string secrets: CAPGO_TOKEN: required: true CAPGO_APP_ID: required: true
jobs: deploy: runs-on: ubuntu-latest environment: ${{ inputs.environment }} steps: - uses: actions/checkout@v6
- name: Setup Node.js uses: actions/setup-node@v6 with: node-version: '24' cache: 'npm'
- name: Install and build run: | npm ci npm run build
- name: Deploy to Capgo run: | npm install -g @capgo/cli npx @capgo/cli bundle upload \ --apikey ${{ secrets.CAPGO_TOKEN }} \ --app ${{ secrets.CAPGO_APP_ID }} \ --channel ${{ inputs.channel }}再利用可能なワークフローを使用します:
name: Deploy App
on: push: branches: [main, develop]
jobs: deploy-dev: if: github.ref == 'refs/heads/develop' uses: ./.github/workflows/reusable-capgo-deploy.yml with: environment: development channel: development secrets: CAPGO_TOKEN: ${{ secrets.CAPGO_TOKEN }} CAPGO_APP_ID: ${{ secrets.CAPGO_APP_ID }}
deploy-prod: if: github.ref == 'refs/heads/main' uses: ./.github/workflows/reusable-capgo-deploy.yml with: environment: production channel: production secrets: CAPGO_TOKEN: ${{ secrets.CAPGO_TOKEN }} CAPGO_APP_ID: ${{ secrets.CAPGO_APP_ID }}- 「次のステップ」 学びましょう チャンネルを管理するには、異なるデプロイメント環境を管理するために使用します。
- 概要を見る カスタムストレージ 高度なデプロイシナリオ向け
- 設定 暗号化 セキュアなデプロイ向け
- 設定 更新動作 更新の適用方法をカスタマイズする
「GitHub Actions」統合を使用すると、GitHubの強力なCI/CDプラットフォームを活用して、Capgo Live Updatesの高度なデプロイワークフローを作成できます。このワークフローには、ビルトインのセキュリティ、監視、コラボレーション機能が含まれます。
「GitHub Actions」統合から続けて
「GitHub Actions」統合から続けてあなたが使用している GitHub Actions インテグレーション __CAPGO_KEEP_0__ CI/CD インテグレーション Capgo CI/CD Capgo ネイティブ ビルド Capgo ネイティブ ビルド Capgo インテグレーション Capgo インテグレーション for the product workflow in Capgo Integrations, GitLab CI/CD インテグレーション CI/CD インテグレーション GitLab CI/CD インテグレーション GitLab CI/CD Integrationの実装詳細については、