メニューに進む

CI/CD統合

CI/CDパイプラインにCapgoを統合することで、Capgoのビルドと更新のデプロイプロセスを完全に自動化できます。CapgoとCLIを活用し、semantic-releaseを利用することで、信頼性の高い、かつ一貫したデプロイを実現し、迅速な開発を可能にします。

CI/CD統合の利点

CI/CD統合の利点
  • 自動化手動ステップや人間のエラーがなくなる。ビルド、テスト、デプロイプロセスがすべて自動化され、エンドツーエンドで管理されます。

  • 一貫性すべてのデプロイが同じステップに従うことで、予測可能で繰り返し可能なプロセスが実現します。これは、複数のチームメンバーがcodeに貢献する場合に特に有効です。

  • 迅速な開発自動デプロイにより、更新を頻繁に、そして自信を持ってリリースできます。手動のQAやリリース承認を待つ必要がなくなります。

Capgo CLIは、CapgoをCI/CDワークフローに統合するための鍵となります。Capgoのバンドルバージョンをプッシュするコマンド、チャンネルの管理、などを提供します。

__CAPGO_KEEP_0__ __CAPGO_KEEP_1__ bundle upload:

CI/CD統合の最も重要なコマンドは
npx @capgo/cli@latest bundle upload --channel Production --apikey YOUR_API_KEY

クリップボードにコピー

暗号化を使用している場合、次のいずれかから提供する必要があります:

プライベートキーファイルパスを使用:
npx @capgo/cli@latest bundle upload --channel Production --apikey YOUR_API_KEY --key-v2 PRIVATE_KEY_PATH

クリップボードにコピー

プライベートキーコンテンツを直接使用 (CI/CDの推奨): ターミナル画面
npx @capgo/cli@latest bundle upload --channel Production --apikey YOUR_API_KEY --key-data-v2 PRIVATE_KEY_CONTENT

CI/CD環境で使用する環境変数の使用(CI/CDのベストプラクティス):

ターミナル画面
npx @capgo/cli@latest bundle upload --channel Production --apikey YOUR_API_KEY --key-data-v2 "$CAPGO_PRIVATE_KEY"

CI/CD環境では、ファイルではなく環境変数にプライベートキーを保存することを推奨します。設定方法はこちらです。

  1. プライベートキー内容を取得:

    ターミナル画面
    cat .capgo_key_v2 | pbcopy

    このコマンドはキー内容をクリップボードにコピーします。

  2. CI/CD環境に追加します:

    • GitHub アクション:追加 CAPGO_PRIVATE_KEY リポジトリのシークレットに追加
    • GitLab CI:プロジェクト設定のマスクされた変数として追加
    • CircleCI:プロジェクト設定の環境変数として追加
    • Jenkins:シークレットテキストクレデンシャルとして追加
  3. 使用方法:

    - run: npx @capgo/cli@latest bundle upload --channel=production --apikey=${{ secrets.CAPGO_API_KEY }} --key-data-v2 "${{ secrets.CAPGO_PRIVATE_KEY }}"

注意: The --key-data-v2 flag allows you to pass the private key content directly as a string, making it perfect for environment variables in CI/CD pipelines where you don’t want to create temporary files.

This command uploads the current web build to the specified channel. You’ll typically run this as the last step in your CI/CD pipeline, after your web build has completed successfully.

CI/CDパイプラインにCapgoを設定する

セクション「CI/CDパイプラインにCapgoを設定する」

CI/CDツールの選択に応じて、Capgoの統合の詳細な手順は異なりますが、一般的なプロセスは次のとおりです:

  1. APIキーを生成する: Capgoダッシュボードにログインし、APIキーを作成します。このキーは、CI/CD環境内でCLIを認証するために使用されます。秘密に保ち、リポジトリにコミットしないでください!

  2. コマンドの設定 bundle upload : CI/CD設定にステップを追加して、適切な引数とともにコマンドを実行します:__CAPGO_KEEP_1__ bundle upload __CAPGO_KEEP_2__

    upload.yml
    - run: npx @capgo/cli@latest bundle upload --channel=production --apikey=${{ secrets.CAPGO_API_KEY }}
    \n置き換え Production デプロイ先のチャンネルに置き換え ${{ secrets.CAPGO_API_KEY }} APIキーを保持する環境変数に置き換え --key-data-v2 "${{ secrets.CAPGO_PRIVATE_KEY }}" 暗号化を使用している場合に追加

  3. ウェブビルド後に追加するステップ upload ウェブビルドが正常に完了した後、ステップが実行されるようにするウェブビルドが正常に完了した後、最新の__CAPGO_KEEP_0__をデプロイするようにする upload step comes after your web build has completed successfully. This ensures you’re always deploying your latest code.\n Here’s an example configuration for GitHub Actions:\n

    upload.yml
    name: Deploy to Capgo
    on:
    push:
    branches: [main]
    jobs:
    deploy:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v6
    - uses: actions/setup-node@v6
    with:
    node-version: '24'
    - run: npm ci
    - run: npm run build
    - run: npm install -g @capgo/cli
    - run: npx @capgo/cli@latest bundle upload --channel=production --apikey=${{ secrets.CAPGO_API_KEY }} --key-data-v2 "${{ secrets.CAPGO_PRIVATE_KEY }}"

バージョン管理のためのSemantic-release

バージョン管理のためのSemantic-release

Capgoのバージョンを管理するには、推奨される方法は、バージョンをファイルに設定することです。 capacitor.config.ts ファイル package.json:

import pkg from './package.json'
const config: CapacitorConfig = {
// ... other config
plugins: {
CapacitorUpdater: {
version: pkg.version,
}
}
}

このアプローチでは、次のことが可能になります。

  1. semantic-release (または他のツール)を使用してバージョンを更新する package.json バージョンが自動的に更新されたアプリをビルドする
  2. 正しいバージョンが含まれたバンドルをアップロードする
  3. CI/CDワークフローは次のようになります。

コピー

- run: npm ci
- run: npx semantic-release # Updates package.json version
- run: npm run build # Builds with new version from capacitor.config
- run: npx @capgo/cli@latest bundle upload --channel=production --apikey=${{ secrets.CAPGO_API_KEY }}

サンプル .releaserc semantic-releaseのための設定ファイルです:

{
"branches": [
"main",
{
"name": "beta",
"prerelease": true
}
],
"plugins": [
"@semantic-release/commit-analyzer",
"@semantic-release/release-notes-generator",
"@semantic-release/changelog",
[
"@semantic-release/git",
{
"assets": ["CHANGELOG.md", "package.json"],
"message": "chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"
}
]
]
}

この設定は以下のことを行います:

  1. コミットメッセージを分析して、次のバージョン番号を決定します。Conventional Commits specに従います。
  2. 最後のリリース以降のコミットに基づいてリリースノートを生成します。
  3. ファイルに新しいリリースノートを更新します。 CHANGELOG.md バージョンを更新します。これは、__CAPGO_KEEP_0__.configによって読み込まれます。
  4. 更新された、および他の変更されたファイルをリポジトリにコミットします。 package.json version, which will be picked up by your capacitor.config.
  5. Updates the CHANGELOG.md, package.jsonversion, which will be picked up by your __CAPGO_KEEP_0__.

アプリをビルドする前に、semantic-releaseを実行してください。更新されたバージョンが__CAPGO_KEEP_0__.config.に含まれるようにします。 package.json capacitorの更新されたバージョンが含まれるようにビルドを実行するようにしてください。

ローカルバージョンがCapgoの場合、自動的にバージョンを上げます。

ローカルバージョンがCapgoの場合に自動的にバージョンを上げる

バンドル名は一意でなければなりません (削除されたバージョンはまだ名前を占有しています)。CIが同じバージョンを繰り返しアップロードするとアップロードが失敗します。バージョンを上げるのではなく、__CAPGO_KEEP_0__を使用してください (例えば、semantic-releaseを使用して)。そうでない場合は、チャンネルのリンクされたバンドルから次の空いているsemverを__CAPGO_KEEP_1__が選択するか、またはリモートアプリの最新バージョンを選択します。 package.json ターミナル画面 package.json (for example with semantic-release). When that is not practical, let the CLI pick the next free semver from the channel’s linked bundle, or else the latest remote app version:

__CAPGO_KEEP_0__ __CAPGO_KEEP_1__ Workers AIを使用して、ローカルバンドルファイルを前の__CAPGO_KEEP_2__/チャンネルデルタマニフェストと比較し、
npx @capgo/cli@latest bundle upload --channel=production --auto-bump
npx @capgo/cli@latest bundle upload --auto-bump major
npx @capgo/cli@latest bundle upload --auto-bump minor # default when the flag has no value
npx @capgo/cli@latest bundle upload --auto-bump patch # alias: fix
npx @capgo/cli@latest bundle upload --auto-bump metadata
npx @capgo/cli@latest bundle upload --channel=production --auto-bump ai

--auto-bump ai uses Capgo Cloudflare Workers AI to compare local bundle files against the previous Capgo/channel delta manifest, pick major | minor | patch | metadata, and print a short reason. With no previous Capgo version, AI is skipped and the bump is __CAPGO_KEEP_0__ __CAPGO_KEEP_1__ Workers AIを使用して、ローカルバンドルファイルを前の__CAPGO_KEEP_2__/チャンネルデルタマニフェストと比較し、.

__CAPGO_KEEP_0__ CI/CD統合を組み合わせないでください --auto-bump with --bundle / -b。詳細なオプションリストについては、 bundle upload reference を参照してください。

トラブルシューティング

トラブルシューティング

If you encounter issues with your Capgo CI/CD integration, here are a few things to check:

  • API key:API キーが有効かつ必要な権限を持っていることを確認してください。環境変数を使用している場合、正しく設定されていることを確認してください。

  • CLI version:Capgo CLI の最新バージョンを使用していることを確認してください。古いバージョンでは、互換性の問題や機能の欠如が発生する可能性があります。

  • ビルドアーティファクト: ご利用のウェブビルドが期待どおりの出力ファイルを生成していることを確認してください。 Capgo CLI は、有効なウェブビルドが必要です。

  • ネットワーク接続性: CI/CD 環境が Capgo サーバーにネットワーク接続できることを確認してください。ファイアウォールまたはプロキシの問題が、まれに Capgo のコマンドの動作に影響を与えることがあります。 upload コマンド

: ご利用の問題が解決しない場合、 Capgo のサポートにご連絡ください。ご利用の特定の設定に関して、問題のトラブルシューティングを支援できます。

Capgo をCI/CD パイプラインに適切にバージョン管理することで、開発ワークフローが大幅にスムーズになります。 capacitor.config アプローチを使用して、自動化されたデプロイとバージョニングを実行することで、更新を迅速かつ信頼性の高いものにできます。

バージョンを設定するための推奨アプローチは、ファイルと使用するsemantic-releaseを更新することで、提供されるロバストで信頼性の高いデプロイメントプロセスです。ご利用者が、機能の開発に集中することができるように、手動のリリースステップを心配する必要がなくなります。 capacitor.config.ts __CAPGO_KEEP_0__ package.json __CAPGO_KEEP_1__

詳細については、Capgo CLI コマンドとオプションについては、 CLI リファレンスを参照してください。さらに、semantic-release の設定については、 semantic-release ドキュメント.

を参照してください。

CI/CD インテグレーション を使用している場合、CI/CD オートメーションを計画するには、 __CAPGO_KEEP_0__ CI/CD Capgo CI/CD Capgo CI/CD Capgo Native Builds 製品ワークフロー用のCapgo Native Builds Capgo Integrations 製品ワークフロー用のCapgo Integrations GitHub Actions Integration 実装詳細のGitHub Actions Integration、および GitLab CI/CD Integration 実装詳細のGitLab CI/CD Integration