メインコンテンツにジャンプ

CI/CD

CI/CD連続インテグレーション。JavaScriptモバイルアプリのパイプラインの基本からライブアップデートまで、CI/CD連続インテグレーションがどのように機能するかを学びましょう。

CI/CD連続統合

金曜日の4時47分、開発者は1行のCSS修正をプッシュしました。 変更は無害に思えますが、赤いpipelineチェックはそれを否定しています。 チームは、夕方に破損したモバイルビルドを追跡するか、依存する手作業の勇者ではなく、変更がまだ新しいときに自動化が失敗を特定するのを信頼するかを選択する必要があります。

CI/CD連続統合の実践的な約束は CI/CD連続統合です。 開発者は小さな変更を頻繁にマージし、自動化されたpipelineは毎回の変更をビルドおよびテストし、検証済みのアーティファクトはユーザーに移動するのを手作業に依存するのではなく、CI/CD pipelineの5つの基本要素を考慮する必要があります。

目次

CI/CD、つまり継続的インテグレーションとは実際に何を意味するのか

継続的インテグレーション 開発者は、共有のGitリポジトリに、定期的に自分の作業を組み合わせる。各プッシュまたはプルリクエストは、自動検証を開始し、通常は依存関係のインストール、linting、ユニットテスト、ビルドを含む。目的は、実行可能なアプリケーションが存在することを証明することではない。実際は、関連する変更がまだ理解しやすいときに、破損した仮定を検出することだ。

CapacitorJSプロジェクトの場合、その検証は npm ci、で始まるかもしれない。次にウェブテストとプロダクションビルドが行われる。pipelineは npx cap sync iOSとAndroidプロジェクトにウェブアセットとネイティブプラグインの変更をコピーする。緑の結果は、リポジトリが一貫した候補を生成したことを示している。単に1人の開発者のラップトップが動作したことを示すだけではない。

継続的デリバリー 検証のプロセスを超えて拡張する。pipelineはバージョン付きアーティファクトを生成し、ステージングまたはプロダクションにリリースする準備ができる。最終リリースには人間がまだ承認する必要がある。特に、チームが規制審査、ストアの調整、または制御されたリリースウィンドウが必要な場合だ。

継続的デプロイ 承認ステップを削除する。定義されたチェックを通過した変更がすべて自動的にリリースされる。ただし、そのモデルは、テスト、クレデンシャル、ロールアウト制御、モニタリング、ロールバック手順が、ミスを吸収できるレベルで信頼性が高くなければならない。

Mobile development makes the same delivery problem more complicated. A web deployment has one runtime target, while a Capacitor app may need an iOS archive, an Android App Bundle, certificates, provisioning profiles, store metadata, and compatibility checks across physical devices. A useful overview of the engineering value behind this workflow is available in Capgoの継続的インテグレーションの利点ガイド.

実用的なルール: CIは悪い変更を早く見せるべきです。CDは良い変更を繰り返せるようにするべきです。

パイプラインはエンジニアリングの判断を置き換えるのではなく、繰り返し作業を人々の手から外し、起こったことを記録し、チームに一貫したコミットからリリースまでのパスを与える。

CI/CDパイプラインの5つの基本構成要素

パイプラインは、シーケンスの責任を扱うのではなく、単一のYAMLファイルとして扱う方が設計が容易です。各ブロックは異なる質問に答えます。

1. トリガー

トリガーはドアベルです。A git push は機能ブランチで高速チェックを開始できます。プルリクエストはマージゲートを実行できます。タグまたはリリースイベントはパッケージングを開始し、スケジュールはメンテナンスまたはより広範なデバイスチェックを実行できます。

リスクに基づいてトリガーを選択します。プルリクエストにはマージする前に迅速なフィードバックが必要です。プッシュを main __CAPGO_KEEP_0__のガイドは継続的インテグレーションの利点について説明しています。

1. ビルド

ビルドはソース code を別のシステムが消費できるものに変える「厨房」です。CapacitorJS アプリケーションでは、一般的に、ロックファイル定義の依存関係をインストールし、Web ビルドを実行し、プラットフォーム ツールを実行し、 npx cap syncを呼び出します。

iOS ラインはmacOS ランナーを通じて呼び出されます。Android ラインはGradleを使用して xcodebuild または .aab を生成します。 .apkCapacitor Live Updateの代替手段

3. テスト

Tests act like a health inspector. Unit tests examine isolated JavaScript or TypeScript behavior. Integration tests check boundaries such as storage, navigation, and API clients. Device or emulator checks exercise native plugins, permissions, deep links, and lifecycle behavior that browser tests can’t fully represent.

Capawesomeの代替手段 コンサルティングAppflowの代替手段またはプラグインです。 テストケースの50%以上研究報告では、最も効果が低いシステムでは20%の時間短縮 システムを選択したときに、50%のメディアンの短縮 継続的なテストの研究 4. パッケージ システムを調べるときに、影響を受けるテストを選択する際に、ドキュメントに記載されているように、システムを横断する際に。 5. デプロイ.

パッケージ

__CAPGO_KEEP_0__プロジェクトのデプロイ自動化ガイド

6. CI/CD

CI/CDは、開発者がコードを書き、テストを実行し、デプロイを実行するプロセスです。CI/CDは、開発者がコードを書き、テストを実行し、デプロイを実行するプロセスです。 自動デプロイのガイドラインは、Capacitor プロジェクトの自動化をサポートしています。 CI/CDパイプラインの構築に役立つ参考資料を提供します。

A CI/CDパイプラインの5つの基本要素(ソース、ビルド、テスト、展開、監視)を示す図。

CI/CDパイプラインの構築に欠けると、パイプラインの強さが弱まる。トリガーがなければ、変更は手動で待たされる。テストがなければ、自動化はバグを早く配信する。パッケージングがなければ、制御されたアーティファクトをプロモートすることはできない。展開制御がなければ、成功したビルドは依然として人によって繰り返される脆弱なステップに依存する。

継続的デリバリーと継続的展開

差は1つの承認境界線だけだが、その境界線は組織のリスクプロファイルを変える。

With 継続的展開では、パイプラインはそのポリシーが通過した後、自動でリリースを行う。強力な自動チェックを持つ消費者アプリでは、パスしたJavaScriptバンドルを限定されたアウディエンスにリリースし、健康信号が受け入れられる場合にロールアウトを拡大する。次元

With __CAPGO_KEEP_0____CAPGO_KEEP_0__

__CAPGO_KEEP_0__ 継続的デリバリー 継続的デプロイ
リリース決定 人工確認が残っています。 人による承認は生産前に残る
Speed スピード 最速のCI/CDは、すべての前提条件が自動化されている場合です。
迅速で、明示的な制御ポイント すべての前提条件が自動化されている場合に最も速い 監査可能性
承認は明確なレビュー記録を提供する Aのレビュアーは疑問のあるリリースを停止できる 進化的なロールアウトとロールバックのコントロールはより重い
ベストフィット コンプライアンスに敏感なまたはリスクの高いモバイルリリース 強力なテスト、観察性、回復手順を持つチーム

CapacitorJSチームのコンプライアンスグループが、すべてのネイティブストアリリースに署名が必要である場合、通常は配信を好むだろう。PipelineはIPAとAABを生成し、適切なレビュー先に送信し、承認を待つ。承認されたJavaScriptとCSSの変更は、組織のポリシーが許可する場合、別のライブアップデートプロセスを実行できる。

低リスクのウェブ層の変更に対して、カジュアルゲームチームは低リスクのウェブ層の変更に対してデプロイを選択し、ネイティブリリースに対して配信を選択することが多い。そうした分離は、すべてのアーティファクトに一つのポリシーを強制するのと比べて、より現実的な場合が多い。

主なトレードオフはスピードではない 配信は明示的な人間の責任を優先する, デプロイは、テストが見逃す可能性のあるコンテキストを捉えることができるが、未記載のボトルネックにもなり得る自動システムの決定を一貫して行う能力を優先する.

CapacitorJSモバイルアプリのための実際のCI/CDパイプライン

CapgoのGitHub Actionsワークフローは、リポジトリの配信マップを視覚化します。アクションのバージョンと署名設定は異なるかもしれませんが、シーケンスは理解しやすくなります。

リポジトリをクリーンにします

pushすると main ワークフローがトリガーされます。最初のジョブはコミットをチェックアウトし、必要なNode.jsバージョンを選択します。 npm ci lockfileが宣言するものだけをインストールします。これにより、ランナーが異なる依存関係の木を解決するのを防ぎます。

Web検証ステージでは、次のようなコマンドを実行できます。

  • Lint: プロジェクトのESLintコマンドを実行し、マージをブロックするべき違反で失敗します。
  • ユニットテスト: 非対話モードのJestを実行し、結果を収集し、有用なログを保存します。
  • Web ビルド: 生産用パッケージをCapacitorがパッケージ化する。
  • Capacitorの同期: 実行 npx cap sync ネイティブプロジェクトは、Webアセットとプラグインの変更を受け取ります。
  • したがって、ネイティブプロジェクトはWebアセットとプラグインの変更を受け取ります。 Capgoの設定を確認してください。 Capacitorに期待どおりのアプリケーション識別子、プラットフォーム設定、環境値が含まれていることを確認してください。

構成が期待どおりのアプリケーションID、プラットフォーム設定、環境値を含んでいることを確認します。 package.json ワークフロー ファイルはオーケストレーションを制御し、Capacitorの構成は同期の動作を制御します。責任を分離することで、エラーを診断することが容易になります。 CapgoのCI設定ガイド ネイティブターゲットを独立してビルドします。

ネイティブターゲットを個別にビルドする

__CAPGO_KEEP_0__のCI設定ガイド xcodebuild またはFastlane。設定は fastlane match 署名材料とビルドプロセスの関係を管理できるが、リポジトリにはプライベート証明書やプロファイルを含めるべきではない。

LinuxまたはmacOSランナーで実行できる。ジョブはGradleを呼び出し、コマンドとして ./gradlew bundleRelease、および署名されたAABファイルを生成します。

CapacitorJSモバイルアプリケーションのCI/CDパイプラインの開発からデプロイまでのステップを示す包括的なフローチャート。

アーティファクトを意図的に保存する。

ワークフローは、コミットまたはリリースIDと紐付けられたIPAとAABを名前付きアーティファクトとしてアップロードする。後続のジョブは、特定のファイルをテストフライトまたはPlay Consoleの内部トラックに送信する。再ビルドは、レビュアーがテストしたアーティファクトと異なるアーティファクトを作成する可能性があるため、この分離は重要である。

マトリックス戦略は、iOSとAndroidのレーンを同時に実行できる。待ち時間を短縮し、プラットフォーム固有のエラーを混在させない。最終的なステータスも明確になる: ウェブビルドは成功したが、Androidの署名が失敗した場合、ワークフローはその区別を示すべきであり、1つの不透明な結果を報告するべきではない。

シークレットはCIプロバイダーの暗号化されたシークレットストアに属する。ジョブは必要な資格情報を受け取り、最短の実行時間で実行する。ログは、コマンドラインツールが失敗したビルド中に構成を出力した場合に、偶然にシークレットを出力したことを確認する必要がある。

Live UpdateをCI/CDフローに追加する: Capgo

デザイナーは金曜日の午後、オンボーディングコピーを変更します。変更はJavaScriptとCSSに影響を与え、ネイティブのSwift、Kotlin、またはプラグインCapacitorには影響を与えません。開発者はコミットし、プルリクエストを開き、正常なチェックでウェブバンドルを検証します。

あと npm ci,ウェブビルド、テスト、 npx cap sync パスが成功した場合、リリースジョブは選択したCapgoチャンネルに生成されたウェブアセットを公開できます。チャンネルは、ステージング、プロダクション、ベータ版のユーザー、または制御されたグループを表す可能性があります。ユーザーは、アプリの更新メカニズムを通じてバンドルを受け取るのではなく、新しいストアバイナリを待つ必要がなくなります。

スクリーンショットはhttps://capgo.app/docs/img/dashboard.webpからです。

原則的な境界はネイティブ code です。JavaScript、CSS、コピー、または互換性のある設定の変更は、ライブアップデートのパスを遂行できます。ネイティブ プラグイン、権限、エンタイトルメント、またはプラットフォーム code の変更は、まだ新しいiOSまたはAndroidバイナリと関連するストアプロセスが必要です。

チャンネルをリリース管理として扱う

ステージングチャネルは、チームがプロダクションへのプロモーション前に、制御されたアウディエンスとバンドルを検証できるようにします。バージョン固定は、互換性のあるバンドルに既知のアプリケーション バージョンを維持するのに役立ちます。新しいネイティブバイナリは別のリリースパスを使用します。この分離により、ネイティブランタイムが理解していないWeb codeを送信するのを避けることができます。

A rollback should restore a known-good bundle, not require a developer to reconstruct the previous build manually. The operational value comes from connecting publication, version history, audience targeting, and delivery status to the same release process.

Publicationを検証後に実行してください。

The Capgo CLI step belongs after the normal web build and checks. Authentication should use a CI secret or protected environment variable, and production publication should be restricted to the branch, tag, or approval policy that represents an intentional release.

The Capgo GitHub Actionsの統合ガイド shows how that publication step can fit into automated workflows. The broader principle applies regardless of provider: build once, validate that artifact, publish it to a named environment, and retain enough metadata to identify exactly what users received.

For a team, this creates two connected lanes. The store lane distributes native capabilities. The live-update lane distributes approved web-layer changes. Keeping those lanes distinct prevents the common mistake of treating every Capacitor change as either a full store release or an uncontrolled shortcut.

CI/CD PipelinesにおけるセキュリティとAI

Pipelineのスピードは弱いリリース制御の代わりにはなりません。モバイルワークフローは署名資格情報、第三者依存関係、ネイティブビルドツール、codeをユーザー機器に到達できるものを取り扱います。セキュリティはlintingとテストと同じ自動化パス内に属するものです。

CI/CD連続インテグレーション npm audit 依存関係チェックやSnyk、gitleaksによるシークレット検出、SBOM生成、署名されたネイティブアーティファクト、CI許可制限、保護されたプロダクション環境など、有用なコントロールが含まれます。Live Update バンドルも署名検証とチャネル制御が必要であり、有効なアプリケーションは改ざんされたまたは互換性のないコンテンツを拒否できます。

2026年の研究では、GitHub Actionsの実装率が平均して17.5%に過ぎなかったという結果が得られました。 約 340,000 のオープンソース リポジトリで 17.5%102人の開発者を対象にした調査では、知識不足と運用負荷の予想が主な障壁であるという結果が得られました。 CI/CDパイプラインにおけるAIの役割を区別する AIは失敗ログの要約、繰り返しフラッキーテストのグループ化、リリースノートの草案、推測される構成ミスの提案などを行うことができます。人間が決定を下し、出力が容易に検証できるようにすることが重要です。

パイプラインの演出から有益なAIを分離する

パイプラインにAIを使用していない組織の割合は73%でした。

パイプラインにAIを使用していない組織の割合は73%でした。 パイプラインにAIを使用していない組織の割合は73%でした。, while 60% 非ユーザーから引用された非明確な価値または用途 36% 生成された結果への不信感を 33% プライバシー懸念として TeamCity調査報告書.

実践 概算採用率 成熟度
推奨GitHub セキュリティ対策 平均17.5% 認識と運用のギャップ
AIをCI/CDパイプラインに 27%の採用率73%のユーザーは使用していない 選択的な実験
AIの価値の明確性 非ユーザー 60%は不明な使用方法や価値
評価の問題 生成された結果への信頼 36%は信頼の欠如

人間によるレビューは重要 パイプラインセキュリティガイドラインはCapacitorアプリケーションに適用されます。 __CAPGO_KEEP_0__アプリのpipelineセキュリティガイド

モバイル固有のリスクを対象にした制御を枠組みにすることができる。

成熟なパイプラインは、ジョブの数が最も多いものではない。チームにリリース境界ごとに信頼できる証拠を提供するものだ。

ワークフローをチェックするのではなく、YAMLをチェックする

運用するシステムを評価するためのチェックポイントを使用する

  1. トリガーが設定されている: プルリクエストと関連するプッシュのすべてで、予想どおりのワークフローが開始される。信号は、コミットに付属する可視化された実行である。文書化された意図ではない。
  2. 自動テストがマージを制御する: リントとユニットテストはマージする前に通過する必要がある。GitHubでは、ジョブが失敗した場合にマージを防ぐ必要があるステータスチェックが必要である。
  3. 署名されたアーティファクトが保存されている: ワークフローは署名されたIPAとAABファイルを作成し、識別可能なビルドメタデータと共に保存する。後日リリースする際は、保存されたアーティファクトを使用するのではなく、メモリから再構築するのではなく。
  4. 分離された環境: ステージングとプロダクションは、異なるクレデンシャル、チャネル、承認ルールを使用する。ステージングのデプロイは、誤ってプロダクションに公開することができない。
  5. 自動デプロイパス: パイプラインは、ファイルを機械間でコピーする必要なく、承認されたアーティファクトを目的の場所に送信できます。
  6. ロールバック用準備: チームは、文書化されたアクションを通じて、前のネイティブまたはウェブ層のバージョンを復元できます。ロールバック手順が1人のエンジニアのノートにのみ存在する場合、それは運用準備ができていないことを意味します。
  7. 監視とアラート: チームはパイプラインの実行時間、失敗した実行、展開結果、およびアプリケーションの健康状態を追跡します。成功したジョブは、ユーザーがアップデートを受け入れたか、耐えたかを証明するものではありません。

CI/CD設定の7ステップの成熟度チェックリスト、ソフトウェア開発と自動化のベストプラクティスを詳細に記載。

最も痛みを与えるギャップを最初に修正する

チェックリストを1年間のプラットフォームプロジェクトに変えないでください。最も頻繁に痛みを与える欠陥を修正し、チェックリストを再度実行するには、1スプリント以内に欠陥を修正するようにします。

開発者が手動ビルドを待つ場合、ビルドを自動化する。マージが破綻するのは、テストが遅すぎるからである場合、テストを必須にします。悪いJavaScriptリリースがストアの提出を強いる場合、ライブアップデートのパスを文書化し、保護する。ユーザーにアーティファクトが届いたかどうかを知るのは誰もいない場合、バージョニングと配信レコードを改善する前に、追加のステージを追加しないようにします。

シニアエンジニアのルール: パイプラインは、異なるエンジニアが安全にインシデントの際に操作できるようになるまで成熟していません。

CI/CDは弱点を早く暴露します。緑のチェックはチームが何を検証したか、アーティファクトがどこに送られたか、ユーザーがどのように受け取ったか、リリースが悪くなる場合にどう回復するかを知っている場合にのみ意味があります。


Capgo connects CapacitorJS CI/CD workflows to controlled live-update delivery, with signed web bundles, channels, version history, and rollback support for eligible JavaScript and asset changes. Visit Capgo Capgoの既存のGitHubアクション、ストア、リリースプロセスとどのように統合できるかを確認してみましょう。

Capacitorアプリの即時更新

When a web-layer bug is live, ship the fix through Capgo instead of waiting days for app store approval. Users get the update in the background while native changes stay in the normal review path.

ウェブ層のバグが生じた場合、__CAPGO_KEEP_0__を使用して修正を配信し、アプリストアの承認待ちの日数を待たずにユーザーに更新を提供する。

コンテキスト:Capgoマーケティングウェブサイト。役割:サポートする説明文またはメタ説明文。見つける場所:コンポーネントGetStarted.astro。Capgo製品/ブランドと開発者用語をそのまま保存する。

マーティンから人間のサポート

Capgoは、プロフェッショナルなモバイルアプリを開発するために必要な最良の洞察を提供します。