GitHub Actions 連携
インストール手順と、このプラグインの完全なMarkdownガイドを含むセットアッププロンプトをコピーします。
code の変更をプッシュするたびに、Capgo Live Updates を GitHub Actions と連携してアプリのアップデートを自動デプロイしましょう。このガイドでは、GitHub の強力な CI/CD プラットフォームを使用した、自動ビルド、テスト、およびデプロイメントワークフローの設定方法を解説します。
前提条件
「前提条件」セクションGitHub Actions の連携を設定する前に、以下を確認してください:
- アプリのソース code が含まれる GitHub リポジトリ
- アプリが設定済みの Capgo アカウント
- プロジェクトでNode.jsと npm/yarnが設定済みであること
- リポジトリで GitHub Actions が有効であること
GitHub Secrets の設定
「GitHub Secrets の設定」というセクションステップ 1: リポジトリの Secrets を設定
セクション「ステップ 1: リポジトリの Secrets を設定」GitHub リポジトリに必要な Secrets を設定します:
- GitHub リポジトリに移動します
- 以下に移動します: 設定 → Secrets と変数 → アクション
- クリック 新しいリポジトリ Secret 以下を追加してください:
| Secret 名 | 値 |
|---|---|
CAPGO_TOKEN | Capgo API トークン |
シンプルな本番環境へのデプロイ
「シンプルな本番環境へのデプロイ」セクションmainブランチへのプッシュごとに本番環境へデプロイする、基本的な設定から始めましょう:
# 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 add $CHANNEL_NAME --apikey ${{ secrets.CAPGO_TOKEN }} || true npx @capgo/cli bundle upload --apikey ${{ secrets.CAPGO_TOKEN }} --channel $CHANNEL_NAME暗号化の利用
「暗号化の使用」セクション以下を使用している場合 Capgoの暗号化機能を使用する場合、プライベートキーをCI/CD環境に安全に保存する必要があります。
完了後、 暗号化キーの設定 ローカル環境で、プライベートキーを GitHub の secrets に追加します:
# Display your private key content (copy this output)cat .capgo_key_v2この内容を次のように追加します: CAPGO_PRIVATE_KEY GitHub の repository secrets に追加した後、ワークフローで使用します:
# 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マルチチャネル設定
「マルチチャネル設定」セクション複数のデプロイチャネルのセットアップと管理について詳しくは、 Channelsのドキュメント.
開発、プルリクエスト、本番デプロイを含むワークフロー全体:
# 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 add $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フィーチャーチャネルのクリーンアップ
「フィーチャーチャネルのクリーンアップ」セクションブランチが削除された際に、フィーチャーチャネルを自動的にクリーンアップします:
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セキュリティとベストプラクティス
「セキュリティとベストプラクティス」セクション環境保護ルール
「環境保護ルール」セクションGitHub で環境保護ルールを設定します:
- 以下に移動します: 設定 → 環境 リポジトリ内で
- 環境を作成:
development,staging,production - 本番環境には以下を追加:
- 必須レビュアー: デプロイ承認が必要なチームメンバーを追加
- 待機タイマー: デプロイ前に遅延を追加(任意)
- デプロイブランチ: 以下に制限
mainブランチのみ
安全な Secrets 管理
「安全なシークレット管理」セクション環境ごとのSecretを使用します:
# 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モニタリングと通知
「Monitoring and Notifications」セクションSlack 連携
「Slack Integration」セクションワークフローに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 }}Discord連携
「Discord Integration」セクションDiscordに通知を送信します:
- 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 }}トラブルシューティング
「トラブルシューティング」セクションデバッグワークフロー
「デバッグワークフロー」セクション問題を調査するためのデバッグ手順を追加:
- 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"再利用可能なワークフロー
「Reusable Workflows」セクションプロジェクト間で一貫性を保つために、再利用可能なワークフローを作成します:
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 連携 CI/CD自動化を計画するには、次と連携してください Capgo での CI/CD 設定 Capgo CI/CDでのプロダクトワークフローについては、 Capgo Native Build Capgo Native Buildsでのプロダクトワークフローについては、 Capgo インテグレーション Capgo インテグレーションでのプロダクトワークフロー向けに、 CI/CD 連携 CI/CD Integrationの実装詳細については、 GitLab CI/CD 連携 GitLab CI/CD Integrationの実装詳細については、こちらを参照してください。