コンテンツにジャンプ

CI/CD統合

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

CI/CD統合の利点

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

  • 一貫性: すべてのデプロイが同じステップに従うため、予測可能で繰り返し可能なプロセスが保証されます。特に、複数のチームメンバーが code に貢献する場合に、非常に価値があります。

  • 迅速な開発: 自動化されたデプロイにより、安心して頻繁に更新をリリースできます。人工知能やリリース承認の待ち時間がなくなる。

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

CI/CD統合で最も重要なコマンドは bundle upload:

ターミナル画面
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 Actions: 追加 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 }}"

: --key-data-v2 CI/CDパイプラインで環境変数を使用する場合、秘密鍵の内容を直接文字列として渡すことができるため、フラグはCI/CDパイプラインで一時ファイルを作成したくない場合に最適です。

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設定にステップを追加して、適切な引数と共に「コマンド」を実行します。upload.yml bundle upload __CAPGO_KEEP_1__

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

シーケンスリリースを使用したバージョン管理

バージョン管理のセマンティックリリース

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

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

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

  1. セマンティックリリース (または他のツール) を使用してバージョンを更新する 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 }}

Here’s a sample .releaserc __CAPGO_KEEP_0__.configのための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 アプリをビルドする前に、semantic-releaseを実行してください。更新されたバージョンがcapacitor.configによって取得されます。
  5. Copy to clipboard CHANGELOG.md, package.jsonThis configuration does the following:

Analyzes commit messages to determine the next version number, following the Conventional Commits spec. package.json ビルドに含まれる capacitor.config. です。

あなたが Capgo CI/CD統合で問題が発生した場合、以下のいくつかの点を確認してください:

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

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

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

  • ネットワーク接続性:あなたのCI/CD環境が Capgo サーバーにネットワーク接続性があることを確認してください。ファイアウォールやプロキシの問題が、まれに Capgo サーバーとの通信に影響を与える可能性があります。 upload command.

Capgoのサポートにご連絡ください。

Integrating Capgo into your CI/CD pipeline with proper version management can greatly streamline your development workflow. By automating your deployments and versioning through the capacitor.config approach, you can ship updates faster and with more confidence.

バージョンをファイルに設定し、semantic-releaseを使用して更新することを推奨するアプローチは、robustで信頼性の高いデプロイプロセスを提供し、機能の開発に集中することができます。 capacitor.config.ts マニュアルのリリースステップに心配する必要がなく、優れた機能を開発することに集中できます。 package.json Capgoの__CAPGO_KEEP_1__コマンドとオプションの詳細については、Capgoのリファレンスを参照してください。

For more details on the Capgo CLI commands and options, check out the CLI reference__CAPGO_KEEP_0__ __CAPGO_KEEP_1__ __CAPGO_KEEP_0__ reference.

__CAPGO_KEEP_0__