TeamCity 2020.2 ヘルプ

ビルドパラメーターの設定

ビルドパラメーターは、設定を共有する柔軟な手段と、設定をビルドに渡す便利な方法を提供します。

ビルドパラメーターの種類

ビルドパラメーターは、ユーザーが定義するか TeamCity によって提供される名前と値のペアで、ビルドで使用できます。

ビルドパラメーターには 3 種類あります。

  • 環境変数env. プレフィックスを使用して定義)は、生成されたビルドプロセスに環境として渡されます。

  • システムプロパティsystem. プレフィックスを使用して定義)は、ビルドツールに固有の変数として、サポートされているランナー(Ant、MSBuild など)のビルドスクリプトに渡されます。

  • 構成パラメーター(プレフィックスなし)はビルドに渡されず、ビルド構成内で設定を共有することのみを目的としています。これらは、テンプレートに基づく、または meta-runner を使用するビルド構成をカスタマイズするための主要な手段です。

TeamCity は事前定義されたパラメーターのセットを提供し、管理者はカスタムパラメーターを追加できます。

パラメーターはさまざまなレベルで定義できます(優先順位の順に)。

  • 特定のビルド ( カスタムビルドを実行する経由ダイアログ)

  • ビルド設定またはビルド構成テンプレートパラメーターページ

  • プロジェクト設定パラメーターページ。これらは、プロジェクトとそのサブプロジェクトのすべてのビルド構成とテンプレートに影響します

  • ビルドエージェント (エージェント上の < Agent home >/conf/buildAgent.properties ファイル)

任意のテキスト設定でパラメーターを参照できます。 %parameter.name% 形式の文字列は、ビルド中に実際の値に置き換えられます。ビルドが定義されていないパラメーターを参照する場合、TeamCity はそれを暗黙のエージェント要件と見なします。ビルドは、このパラメーターが定義されているエージェントでのみ実行されます。

パラメーター名の制限

構成パラメーターの名前は、以下の要件を満たしている必要があります。

  • 次の文字のみを含む: [a-zA-Z0-9._-*]

  • ASCII 文字で始まる

名前が上記の制限を満たさないパラメーターへの参照は、暗黙の要件を作成しません。

ビルド構成でのビルドパラメーターの定義

ビルド設定パラメーターページでは、ビルドの開始時にビルドスクリプトと環境に渡される必要なシステムプロパティと環境変数を定義できます。カスタムビルドの起動時に再定義できることに注意してください。

ビルド構成で定義されたビルドパラメーターは、この構成内でのみ使用されます。他の方法については、プロジェクトレベルとエージェントレベルのビルドパラメーターを参照してください。

ユーザー定義のビルドパラメーター(システムプロパティまたは環境変数)は、次の形式を使用して他のパラメーターを参照できます。

%[env|system].property_name% For example: system.tomcat.libs=%env.CATALINA_HOME%/lib/*.jar

ビルド構成設定でのビルドパラメーターの使用

ほとんどのビルド構成設定では、実際の値を使用する代わりに、ビルドパラメーターへの参照を使用できます。ビルドを開始する前に、TeamCity はすべての参照を使用可能なパラメーターで解決します。解決できない参照がある場合、それらはそのまま残されます。それぞれの警告がビルドログに表示されます。

ビルドパラメーターを参照するには、その名前をパーセント記号で囲んで使用します(例: %teamcity.build.number%)。

パーセント記号 TeamCity の間に表示されるテキストは、プロパティへの参照と見なされます。ビルド構成でプロパティが見つからない場合、参照は暗黙のエージェント要件になり、そのようなビルド構成は、このプロパティが定義されているエージェントでのみ実行できます。エージェント定義の値がビルドで使用されます。

TeamCity がパーセント記号のテキストをプロパティへの参照として処理しないようにするには、2 つのパーセント記号を使用します。プロパティ参照がサポートされている値の %% はすべて、ビルドに値を渡す前に % に置き換えられます。例: %Y%m%d%H%M%S をビルドに渡す場合は、%%Y%%m%%d%%H%%M%%S に変更します。

参照を使用できる場所

設定

説明

ランナー設定、アーティファクト仕様を構築する

ビルドに渡される任意のプロパティ

ユーザー定義のプロパティと環境変数

ビルドに渡される任意のプロパティ

ビルド番号の形式

事前定義されたサーバービルドプロパティのみ

VCS ルートとチェックアウトルールの設定

ビルドに渡される任意のプロパティ

VCS ラベルパターン

system.build.number および事前定義されたサーバービルドプロパティ

アーティファクトの依存関係の設定

事前定義されたサーバービルドプロパティのみ

ビルド構成でビルドパラメーターを参照し、そこで定義されていない場合、構成のエージェント要件になります。ビルド構成は、このプロパティが定義されているエージェントでのみ実行されます。

パスワードフィールドにはパラメーターへの参照も含めることができますが、この場合、参照はパスワード値としてマスクされているため表示できません。

依存関係からのパラメーターの使用とオーバーライドの詳細については、このセクションを参照してください。

VCS のラベリングパターンとビルド番号でのビルドパラメーターの使用

ビルド番号パターンと VCS ラベル付けパターンでは、%[env|system].property_name% 構文を使用して、サーバー側で既知のプロパティを参照できます。

  • サーバーと事前定義済みプロパティの参照

  • パラメーターページのビルド構成の設定で定義されたプロパティ

例: VCS リビジョン番号は %build.vcs.number% として指定できます。

ビルドスクリプトでのビルドパラメーターの使用

env. プレフィックス(環境変数)で始まるすべてのビルドパラメーターは、ビルドのプロセス環境に渡されます(プレフィックスは省略されます)。

system. プレフィックス(システムプロパティ)で始まるすべてのビルドパラメーターは、サポートされているビルドスクリプトエンジンに渡されsystem. プレフィックスなしでプロパティ名参照できます
この構文はビルドスクリプトで機能することに注意してください(TeamCity 設定では機能しません)。

  • AntMavenNAnt の場合、${<property name>} を使用します。

  • MS ビルド(Visual Studio 2005/2008 プロジェクトファイル)の場合は、$(<property name>) を使用します。MSBuild はドット付きの名前(. )をサポートしていないため、ビルドスクリプト内でプロパティを使用する場合は、._ に置き換える必要があることに注意してください。

  • Gradle の場合、TeamCity システムプロパティは Gradle プロパティ( gradle.properties ファイルで定義されたものと同様)としてアクセスでき、次のように参照されます。

    • Groovy 識別子として許可される名前(プロパティ名にはドットが含まれません):

    println "Custom user property value is $\{customUserProperty\}"
    • Groovy 識別子として使用できない名前(プロパティ名にドットが含まれています): たとえば build.vcs.number.1 ): project.ext["build.vcs.number.1"]

TeamCity がビルドプロセスを開始すると、次の優先順位のビルドパラメーターが使用されます(一番上のものがより高い優先順位を持ちます)。

  • プロジェクトレベルおよびエージェントレベルのビルドパラメーターファイルのパラメーター

  • 定義済みパラメーター

  • カスタムビルド実行で定義されたパラメーターダイアログ

  • ビルド構成設定で定義されたパラメーター

  • プロジェクトで定義されたパラメーター (プロジェクトに定義されたパラメーターは、そのすべてのサブプロジェクトとビルド構成に継承されます。必要に応じて、ビルド構成で再定義できます)

  • テンプレートで定義されたパラメーター (もしあれば)

  • エージェントの buildAgent.properties ファイルで定義されたパラメーター

  • ビルドエージェントプロセス自体の環境変数

結果のパラメーターのセットは、ビルドスクリプトからアクセスできるファイルにも保存されます。詳細については、teamcity.build.properties.file システムプロパティまたは定義済みのビルドパラメーターTEAMCITY_BUILD_PROPERTIES_FILE 環境変数の説明を参照してください。

関連ページ:

ビルド構成テンプレート

概要:Build configuration templatesallow you to eliminate duplication of build configuration settings. If you want to have several similar (not necessarily identical) build configurations and be able to modify their common settings in one place without

メタランナーを使う

メタランナーを使用すると、ビルド構成からビルドステップ、要件、パラメーターを抽出し、それらからビルドランナーを作成できます。このビルドランナーは、他のビルド構成またはテンプレートのビルドステップで他のビルドランナーとして使用できます。メタランナーを使用すると、次のことができます。既存のランナーを再利用する、典型的なタスクのために新しいランナーを作成する (たとえば、FTP に発行、ディレクトリを削除)、ビルド構成を簡素化し、ビルド手順の数を減らします、基本的に、メタランナーは、あるビルド構成から...

定義済みのビルドパラメーター

TeamCity には、ビルド構成の設定またはビルドスクリプトで使用する準備ができている多数のビルドパラメーターがあります。定義済みのビルドパラメーターは、いくつかのスコープから発生します。サーバー構築プロパティは、特定のビルドのスコープ内でサーバー側の TeamCity によって生成されます。このようなパラメーターの例は、ビルド番号です。エージェントのプロパティは、サーバーへの接続時にエージェントによって提供されます。これらは、エージェント環境(.NET Framework へのパスなど)のビ...

依存関係を構築する

このページでは、例に基づいて、TeamCity で依存関係がどのように機能するかについての一般的な考え方を示します。依存関係の説明については、依存ビルドを参照してください。導入:多くの場合、あるビルドの出力を別のビルドで使用したり、同じソース上でいくつかのビルドを順番に実行したりすると便利です。典型的な例を考えてください。本番ビルドを取得する前に、Windows と macOS でテストする必要があるクロスプラットフォームプロジェクトがあります。この単純なケースのための最良のワークフローは以下...