メインコンテンツへスキップ

CI UIからNative Buildをトリガーする

PR をマージしたりリリースタグを切ったりせずに、署名済みの iOS または Android バイナリが必要になることがあります。QA ビルド、ストアへの再提出、単発の TestFlight などです。主要な code ホストはすべて、Web UI からパイプラインを開始できます。このガイドでは、その UI を Capgo Build に連携する方法を説明します。

Git 操作は不要

「Run workflow」または「Run pipeline」をクリックします。Capgo Build が、選択したブランチからコンパイルします。

安全な入力

プラットフォームとビルドモードは、ホストが対応している場合(GitHub / Bitbucket / Azure)は選択肢が制限されます。GitLab の変数は、実行ごとに編集できます(ただし pipeline inputs を定義した場合を除く)。 を使用して options.

CIと同じシークレットを使用

リポジトリにある Capgo Build の認証情報を再利用します。ローカル環境で新しく設定する必要はありません。

GitHub の アクション タブから、以下を宣言しているワークフローを開始できます: workflow_dispatch.

.github/workflows/capgo-build-manual.yml
name: Capgo Build (Manual)
on:
workflow_dispatch:
inputs:
platform:
description: Platform to build
required: true
default: both
type: choice
options: [ios, android, both]
mode:
description: Build mode
required: true
default: debug
type: choice
options: [debug, release]
ref_note:
description: Optional note for the run summary
required: false
type: string
jobs:
build:
runs-on: ubuntu-latest
environment: ${{ inputs.mode == 'release' && 'production' || 'build-debug' }}
strategy:
fail-fast: false
matrix:
platform: ${{ fromJSON(inputs.platform == 'both' && '["ios","android"]' || format('["{0}"]', inputs.platform)) }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v6
with:
node-version: '24'
cache: 'npm'
- run: npm ci
- run: npm run build
- run: npx cap sync ${{ matrix.platform }}
- name: Capgo Build
env:
CAPGO_TOKEN: ${{ secrets.CAPGO_TOKEN }}
BUILD_CERTIFICATE_BASE64: ${{ secrets.BUILD_CERTIFICATE_BASE64 }}
P12_PASSWORD: ${{ secrets.P12_PASSWORD }}
CAPGO_IOS_PROVISIONING_MAP: ${{ secrets.CAPGO_IOS_PROVISIONING_MAP }}
APPLE_KEY_ID: ${{ secrets.APPLE_KEY_ID }}
APPLE_ISSUER_ID: ${{ secrets.APPLE_ISSUER_ID }}
APPLE_KEY_CONTENT: ${{ secrets.APPLE_KEY_CONTENT }}
APP_STORE_CONNECT_TEAM_ID: ${{ secrets.APP_STORE_CONNECT_TEAM_ID }}
ANDROID_KEYSTORE_FILE: ${{ secrets.ANDROID_KEYSTORE_FILE }}
KEYSTORE_KEY_ALIAS: ${{ secrets.KEYSTORE_KEY_ALIAS }}
KEYSTORE_KEY_PASSWORD: ${{ secrets.KEYSTORE_KEY_PASSWORD }}
KEYSTORE_STORE_PASSWORD: ${{ secrets.KEYSTORE_STORE_PASSWORD }}
PLAY_CONFIG_JSON: ${{ secrets.PLAY_CONFIG_JSON }}
run: |
EXTRA=""
if [ "${{ inputs.mode }}" = "debug" ] && [ "${{ matrix.platform }}" = "android" ]; then
EXTRA="--no-playstore-upload --output-upload"
fi
npx @capgo/cli@latest build request com.example.app \
--platform ${{ matrix.platform }} \
--build-mode ${{ inputs.mode }} \
$EXTRA
  1. ブラウザで GitHub リポジトリを開きます
  2. 以下に移動します: アクション
  3. 選択します Capgo ビルド (手動)
  4. クリック ワークフローの実行
  5. ブランチ、プラットフォーム、モードを選択
  6. 確認 ワークフローの実行

以下の権限を持つユーザーは 書き込み 権限があればビルドを開始できます。サンプルでは release GitHub 環境として、次へ実行されます: production — その環境を作成し、必要なレビュアーを追加して、ビルドの承認待ち状態にしてください。そうしないと、 environment: ジョブに設定されていない場合、環境保護ルールは適用されません。

GitLab では以下からジョブを実行できます: ビルド → Pipelines → パイプラインを実行 そのブランチでジョブが利用可能な場合。

# Job fragment for .gitlab-ci.yml
stages:
- build
variables:
APP_ID: com.example.app
PLATFORM: android # override from Run pipeline UI
BUILD_MODE: debug
capgo_native_manual:
stage: build
when: manual
script:
- npm ci
- npm run build
- npx cap sync "$PLATFORM"
- |
npx @capgo/cli@latest build request "$APP_ID" \
--platform "$PLATFORM" \
--build-mode "$BUILD_MODE"
rules:
# Actions / Pipelines UI → manual play button
- if: '$CI_PIPELINE_SOURCE == "web"'
when: manual
# Pipeline trigger token / webhook → run automatically
- if: '$CI_PIPELINE_SOURCE == "trigger"'
when: on_success
- when: never
  1. GitLabプロジェクトを開く
  2. 以下に移動します: ビルド → Pipelines → パイプラインを実行
  3. ブランチを選択
  4. 任意で設定 PLATFORM / BUILD_MODE この実行用の変数
  5. パイプラインを開始し、次に以下をクリックします: capgo_native_manual

when: manual これにより、pushのたびにジョブが実行されるのを防ぎ、Web UI(または パイプライントリガー用のトークン)からオンデマンドで開始できます。

Bitbucket UI から変数を渡せるように、カスタムパイプラインを使います:

bitbucket-pipelines.yml
pipelines:
custom:
capgo-native-build:
- variables:
- name: PLATFORM
default: android
allowed-values:
- ios
- android
- name: BUILD_MODE
default: debug
allowed-values:
- debug
- release
- step:
name: Capgo Build
image: node:24
script:
- npm ci
- npm run build
- npx cap sync "$PLATFORM"
- npx @capgo/cli@latest build request com.example.app --platform "$PLATFORM" --build-mode "$BUILD_MODE"

以下から実行: Pipelines → Run pipeline → Custom: capgo-native-build。保存: CAPGO_TOKEN および署名用マテリアルは以下に: リポジトリ設定 → Pipelines → Repository variables.

azure-pipelines-capgo-manual.yml
trigger: none # disable CI push triggers
pr: none # also disable PR triggers (GitHub/Bitbucket-backed projects)
parameters:
- name: platform
displayName: Platform
type: string
default: android
values:
- ios
- android
- name: buildMode
displayName: Build mode
type: string
default: debug
values:
- debug
- release
pool:
vmImage: ubuntu-latest
steps:
- task: NodeTool@0
inputs:
versionSpec: '24.x'
- script: |
npm ci
npm run build
npx cap sync ${{ parameters.platform }}
npx @capgo/cli@latest build request com.example.app \
--platform ${{ parameters.platform }} \
--build-mode ${{ parameters.buildMode }}
env:
CAPGO_TOKEN: $(CAPGO_TOKEN)
# map other signing secrets from Library → Variable groups

trigger: none と pr: none パイプラインがCI/PRで自動実行されないようにしておき、 Pipelines → パイプラインを実行 (またはwebhook)から開始するようにします。プロジェクトでこのパイプラインをキューに入れるAzure Reposブランチポリシーを使用している場合は、そのポリシーを別途無効にしてください。次に、 CAPGO_TOKEN 署名用の値を、secretとしてマークされた変数グループに追加します。

入力推奨値備考
プラットフォームios, android, bothMatrixの実行タイミング both
モードdebug, releaseデバッグ + --output-upload QAリンク用
iOS配布app_store, ad_hocAd-hocはApp Storeに送信されません

ダウンロード可能なQAアーティファクトには、Androidのdebugと以下を組み合わせ、 --no-playstore-upload --output-upload URLの読み取りには以下を使用します: build last-output.

  • ストアへ送信するビルドには、環境保護ルール (GitHub) または保護された変数 (GitLab) の使用を release 推奨します。
  • 署名用パスワードをワークフローに置かないでください inputs — 保存先は secrets/variables のみにしてください。
  • リポジトリのロールやチーム権限を使って、ワークフローを実行できる人を制限してください(GitHub への書き込み権限が必要です)。ブランチ保護だけでは、 ワークフローの実行を制御できません。限られたグループだけがビルドを開始できるようにする場合は、ワークフロー内に認可チェックを追加してください。