メタランナーを使う
メタランナーを使用すると、ビルド構成からビルドステップ、要件、パラメーターを抽出し、それらからビルドランナーを作成できます。このビルドランナーは、他のビルド構成またはテンプレートのビルドステップで他のビルドランナーとして使用できます。
メタランナーを使用すると、次のことができます。
既存のランナーを再利用する
典型的なタスクのために新しいランナーを作成する (たとえば、FTP に発行、ディレクトリを削除)
ビルド構成を簡素化し、ビルド手順の数を減らします
基本的に、メタランナーは、あるビルド構成からのビルドステップのセットであり、別のビルド構成で再利用できます。これは、他のビルド構成の XML 定義で利用できるビルド手順、要件、パラメーターを含む XML 定義です。
TeamCity では、Web UI を使用してメタランナーを抽出できます。
すべてのメタランナーはプロジェクトレベルで保存されるため、このプロジェクトとそのサブプロジェクト内でのみ使用でき、外部には表示されません。メタランナーが <ルート> プロジェクトレベルで保存されている場合、グローバルに(すべてのプロジェクトで)使用できます。
TeamCity Meta-Runners Power Pack から既存のメタランナーを使用することも、独自のメタランナーを作成することもできます。
メタランナーパワーパックの使用
GitHub で利用可能な TeamCity 用メタランナーパワーパック(英語)は、ファイルのダウンロード、ビルドのトリガー、ビルドのタグ付け、ビルドステータスの変更、PHP タスクの実行など、さまざまなタスクのメタランナーのコレクションです。
各 *MRPP_*.xml*
ファイルには、単一のメタランナーの定義が含まれています。必要なメタランナーをダウンロード(またはその定義をファイルにコピー)して、以下のセクションの説明に従ってインストールします。
メタランナーのインストール
TeamCity Web UI を使用してメタランナーをインストールできます。または、ファイルシステムを介して直接実行することもできます。
Web UI を使用してメタランナーをインストールするには、プロジェクト設定 | メタランナーに移動し、メタランナーをアップロードをクリックして、メタランナー定義ファイルを選択します。変更を保存します。
メタランナーをファイルシステムに直接インストールするには、メタランナー定義ファイルを
<TeamCity Data Directory\config\projects\<project_ID>\pluginData\metaRunners
ディレクトリに配置します。<project_ID>
は、メタランナーを配置するプロジェクトの識別子です。metaRunners
ディレクトリが存在しない場合は、手動で作成します。
ファイルをディスクに配置すると、TeamCity がそれを検出してメタランナーをロードします。サーバーの再起動は必要ありません。
メタランナーが正常にロードされると、プロジェクト設定のメタランナーページにリストされます。適切な権限がある場合は、TeamCity UI で定義を直接変更できます。
ランナーはビルド設定 | ビルドステップページのビルドランナーのリストに表示され、便利な UI を備えたネイティブ TeamCity ランナーとして表されます。
プロジェクトに配置されたメタランナーは、そのすべてのサブプロジェクトとビルド構成で使用できます。すべてのプロジェクトでメタランナーを使用できるようにするには、それをルートプロジェクトに配置します。
メタランナーを作成する
TeamCity Web UI を使用してビルド構成を作成し、そこからメタランナーを抽出するか、既存のビルド構成の XML 定義をメタランナーとして使用できます。
UI から独自のメタランナーを作成する
メタランナーを作成する例を考えてみましょう。
メタランナーを作成するには、次の手順に従います(以下で詳しく説明します)。
メタランナーで使用されるビルドステップをテストするビルド構成を準備します。
この例では、対応するサービスメッセージの助けを借りて、TeamCity にいくつかのアーティファクトを公開するメタランナーを作成します。
通常、ビルド構成で構成されたアーティファクトは、ビルドが終了したときに公開されます。ただし、複数のビルドステップを含む長いビルドの場合は、アーティファクトを早くする必要があります。この例では、任意のビルドステップ間に挿入でき、前のステップで生成されたアーティファクトを公開するように構成できるランナーを作成します。
ビルド設定の準備
最初のステップは、作成したいメタランナーと同じように機能するビルド構成を準備することです。単一の Ant ビルドステップで構成を使用してみましょう。Ant は、TeamCity エージェントが実行される任意のプラットフォームで実行できます。また、TeamCity の Ant ランナーは、ランナー設定で指定された build.xml
をサポートします。ビルド構成は自己完結型でなければならないため、これは重要です。build.xml
をバージョン管理リポジトリから取得することはできません。この場合、Ant のステップ設定は次のようになります。
artifact.paths
はシステムプロパティです。ビルド構成設定のパラメータータブに追加する必要があります。
各パラメーターには、ラベル、説明、コントロールの型を提供し、検証条件を指定できる仕様を含めることができます。バージョン 8.0 より前は、この仕様はカスタムビルドダイアログでのみ使用されていました。現在、この仕様はメタランナーでも使用されています。
ビルド構成が正しく機能していることの確認
ビルド手順とパラメーターが定義されたら、カスタムビルドダイアログでいくつかのビルドを実行してビルド設定が機能することを確認する必要があります。
メタランナーの抽出と使用
ビルド構成が適切に機能する場合、ビルド設定ページの右上隅にあるアクションボタンをクリックし、メタランナーを抽出オプションを選択することにより、メタランナーを作成できます。
メタランナーの抽出ダイアログでは、メタランナーを作成するプロジェクトを指定する必要があります。プロジェクトで作成されたメタランナーは、このプロジェクトとそのすべてのサブプロジェクトで使用できます。私たちの場合は <ルートプロジェクト> が選択されているため、メタランナーはすべてのプロジェクトで利用可能になります。
また、メタランナーの名前、説明、ID を提供する必要があります。名前と説明は Web インターフェースに表示されます。ID は、このメタランナーを他と区別するために必要です。
抽出ボタンをクリックすると、TeamCity はこのビルド構成内のすべてのビルドステップとパラメーターの定義を取得し、それらからビルドランナーを作成します。
メタランナーが抽出されると、それが属するプロジェクトの名前で、ビルドランナーのセレクターで使用可能になり、他のビルドランナーと同様に、任意のビルドステップで使用できます。
現在のメタランナーの使用箇所はプロジェクトメタランナーページで見ることができます。
メタランナーが抽出されると、すべてのステップが抽出されます。パラメーターを並べ替える必要がある場合、またはランナースクリプトでいくつかのクイックフィックスを行う必要がある場合は、Web ブラウザーでその未加工の XML 定義を編集できます。プロジェクト管理 | メタランナーに移動し、メタランナーの横にある編集オプションを使用します。パラメーターは、XML 定義の <param>
要素と同じ順序で表示されます。メタランナーの定義は <TeamCity Data Directory>\config\projects\<project_ID>\pluginData\metaRunners
ディレクトリに保存されています。
XML からメタランナーを作成する
または、既存のビルド構成の XML 定義をメタランナーとして使用できます。これを行うには、このビルド構成の定義を <runner_id>.xml
という名前のファイルに保存します。<runner_id>
はこのビルドランナーの ID です。上記の説明に従って、メタランナーをインストールします。
メタランナーは他のランナーと同じように見え、動作するため、既存のメタランナーに基づいて別のメタランナーを作成することも可能です。
メタランナーからビルド構成を作成する
メタランナーを修正して修正をテストする必要がある場合は、メタランナーからビルド構成を作成し、そのステップを変更し、パラメーターと要件を調整し、動作を確認してから、メタランナーを抽出アクションを使用して、同じ ID を持つ既存のメタランナーに変更を適用できます。
関連ページ:

ビルドランナー
ビルドランナーは TeamCity の一部であり、特定のビルドツール(Ant、MSBuild、コマンドラインなど)との統合を可能にします。ビルド構成では、ビルドランナーは、ビルドを実行してその結果を報告する方法を定義します。各ビルドランナーには 2 つの部分があります。Web UI を介して構成され...

ビルドステップ条件
ビルドステップを設定するときに、一般的な実行ポリシーを選択できます。TeamCity 2020.1 以降、パラメーターベースの実行条件を追加できます。実行条件により、ビルドがより柔軟になり、次のような多くの一般的な使用例に対応します。デフォルトのブランチでのみステップを実行する、ブランチでのみステッ...