ダイナミック コンフィグ

プロジェクトごとに毎回 CircleCI 設定ファイルを手動で作成するのではなく、特定のパイプライン パラメーターやファイルパスに応じて設定ファイルを動的に生成できると便利な場合があります。

チームでコードの格納に複数のリポジトリではなくモノレポ (単一のリポジトリ) を使用している場合には特に、条件付きの自動生成が役立ちます。 当然ながら、モノレポを使用する場合、プロジェクトの特定の領域にある特定のビルドだけをトリガーするのが最善です。 そうしなければ、ちょっとした更新を加えるだけだとしても、すべてのマイクロサービスやサブプロジェクトでビルド、テスト、デプロイの一連のプロセスを毎回行うことになります。

どちらの (さらにその他多くの) ユース ケースでも、設定ファイルの自動動的生成を利用すると、CircleCI エクスペリエンスが最適化され、チームの時間とコストの両方を節約できます。

CircleCI のダイナミック コンフィグ機能では、セットアップ ワークフロー構成を使用します。 セットアップ ワークフローに含めたジョブでは、演算したパイプライン パラメーターを使用するか、スクリプトによるフォローアップ パイプラインを生成して、子パイプラインをセットアップできます。 それらの演算されたパイプライン パラメーターや生成された config.yaml ファイルは、外部ディレクトリに存在する別の config.yaml に渡すことができます。

要約すると、CircleCI のダイナミック コンフィグ機能では以下が可能です。

  • 条件付きでワークフローやコマンドを実行する
  • パイプライン パラメーターの値を渡す/別の設定ファイルを生成する
  • デフォルトの親 .circleci/ ディレクトリの外部に存在する別の config.yml をトリガーする

ダイナミック コンフィグ機能を使用するには、(.circleci/ ディレクトリにある) 親設定ファイルの最上部に setup キーを追加し、値として true を設定します。 これで config.yamlセットアップ ワークフロー構成として指定され、ダイナミック コンフィグを利用できるようになります。

Note: *At this time, Dynamic Configuration does not work with Scheduled Workflows. We are working on Scheduled Pipelines, which will alleviate this. This feature is expected to launch in the near future. A possible work around can be found on our Discuss page.

詳細については、この後の使用開始に関するセクションを参照してください。

CircleCI のダイナミック コンフィグの使用を開始する

CircleCI でダイナミック コンフィグの使用を開始するには、以下の手順に従います。

  • CircleCI アプリケーションの [Projects (プロジェクト)] ダッシュボードで、目的のプロジェクトを選択します。
  • 右上隅の [Project Settings (プロジェクト設定)] ボタンをクリックします。
  • 左側のパネルで [Advanced (詳細設定)] を選択します。
  • 画面下部にある [Enable dynamic config using setup workflows (セットアップ ワークフローによるダイナミック コンフィグを有効にする)] を、下記画像のようにオンにします。

UI でのダイナミック コンフィグの有効化

これで、プロジェクトで設定ファイルの動的な生成と更新ができるようになりました。

Note: While the steps above will make the feature available, your static config.yml will continue to work as normal. This feature will not be used until you add the key setup with a value of true to that config.yml.

ダイナミック コンフィグを使用する場合には、セットアップ ワークフローの終わりに、continuation Orbcontinue ジョブを呼び出す必要があります (注: 特定のファイルに対する更新に応じてワークフローやステップを実行する場合には当てはまりません。 詳しくは、「構成クックブック」の例を参照)。

セットアップ ワークフローを使用してダイナミック コンフィグを利用する方法の基本的な例は、「構成クックブック」を参照してください。 クックブックにはより詳細な例が掲載されており、この機能の成熟に合わせて更新される予定です。

CircleCI のダイナミック コンフィグを使用する際のパイプライン作成/続行プロセスのバックグラウンド処理に関する詳細は、GitHub の公開リポジトリを参照してください。

ダイナミック コンフィグに関するよくあるご質問

パイプライン パラメーター

Q: パイプライン パラメーターは API でしか使用できないのではありませんか?

A: 以前はそうでした。 しかし、ダイナミック コンフィグ機能を使用すると、パイプライン パラメーターを動的に設定してから、パイプラインを実行したり、API または Web フック (VCS へのプッシュ イベント) からパイプラインをトリガーしたりすることができます。

continuation Orb

Q: continuation Orb とは何ですか?

A: continuation Orb は、パイプラインの続行プロセスを簡単に管理できるように CircleCI ユーザーを支援する Orb です。 continuation Orb は、continuePipeline に対する API 呼び出しを使いやすくラップします。 詳細については、continuation Orb のドキュメントを参照してください。

Learn More

Take the dynamic configuration course with CircleCI Academy to learn more.



ドキュメントの改善にご協力ください

このガイドは、CircleCI の他のドキュメントと同様にオープンソースで、GitHub で使用できます。 ご協力いただき、ありがとうございます。


クリエイティブ・コモンズ・ライセンス
CircleCICircleCI ドキュメントは、クリエイティブ・コモンズの表示--非営利-継承 4.0 国際ライセンス に基づいてライセンス供与されています。