TeamCity 2019.2ヘルプ

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

TeamCityには、ビルド構成の設定またはビルドスクリプトで使用する準備ができている多数のビルドパラメータがあります。

このページで:

定義済みのビルドパラメータは、いくつかのスコープから発生します。

  • サーバービルドプロパティー - 特定のビルドの範囲内でサーバー側でTeamCityによって生成されたパラメータ。そのようなプロパティーの例はビルド番号です。

  • エージェントのプロパティー - サーバーへの接続時にエージェントによって提供されるパラメーター。これらのパラメーターは、エージェント環境を構築および特性化するためのものではありません(たとえば、.NET Frameworkへのパス)。これらは主にエージェント要件で使用されます。

  • エージェントビルドプロパティー - ビルド開始直前に特定のビルドのスコープ内でエージェント側に提供されるパラメーター。例:変更されたファイルのリストを含むファイルへのパス。
    これらすべてのパラメータは、最終的にビルドに渡されます。

他のパラメータを定義しながら参照で使用できる特殊な種類のサーバーサイドビルドパラメータもありますが、これらはビルドに渡されません。そのようなプロパティーのリストについては、下記の構成パラメータを参照してください。

サーバービルドプロパティー

システムプロパティーは %system.propertyName%を使用して参照できます。

システムプロパティー名

環境変数名

説明

teamcity.version

TEAMCITY_VERSION

TeamCityサーバーのバージョン。このプロパティーは、ビルドがTeamCity内で実行されていることを確認するために使用できます。

teamcity.projectName

TEAMCITY_PROJECT_NAME

現在のビルドが属するプロジェクトの名前。

teamcity.buildConfName

TEAMCITY_BUILDCONF_NAME

現在のビルドが属するビルド構成の名前。

teamcity.buildType.id

なし

現在のビルドが属するビルド構成を参照するためにTeamCityによって使用される一意のID

teamcity.configuration.properties.file

なし

すべてのビルドプロパティーをアルファベット順に含むファイルのフルネーム(パスを含む)。

build.is.personal

BUILD_IS_PERSONAL

ビルドが個人用の場合は true に設定されます。他に定義されていません。

build.number

BUILD_NUMBER

ビルド番号フォーマットを使用してTeamCityによってビルドに割り当てられたビルド番号。プロパティーはビルド番号の形式に基づいて割り当てられます。

teamcity.build.id

なし

ビルドを参照するためにTeamCityによって使用される内部の固有ID。

teamcity.auth.userId

なし

他のビルド構成の成果物をダウンロードするために使用できる生成されたユーザー名。ビルド中にのみ有効です。詳細

teamcity.auth.password

なし

他のビルド構成の成果物をダウンロードするために使用できる生成されたパスワード。ビルド中にのみ有効です。詳細

build.vcs.number.<VCS root ID>

BUILD_VCS_NUMBER_<VCS root ID>

識別されたルートのビルドに含まれている最新のVCSリビジョン。<VCSルートID>の説明については、VCSルートの設定を参照してください。設定に単一のルートしかない場合は、build.vcs.number プロパティー(VCSルートIDなし)も提供されます。

構成パラメータ

これらは他のプロパティーが参照できるパラメータです(パラメーターページで定義されている場合のみ)が、それ自体はビルドに渡されません。

system.teamcity.debug.dump.parameters プロパティーをビルド構成に追加し、ビルドログの "Available server properties"セクションを調べることで、このようなサーバープロパティーのフルセットを取得できます。

これらのプロパティーには、次のものがあります。

依存関係プロパティー

これらは、現在のビルドが依存しているビルドによって提供されるプロパティーです(スナップショットまたは成果物の依存関係を介して)。

依存ビルドでは、依存関係プロパティーの形式は以下のとおりです。

dep.<btID>.<property name>
  • <btID> - プロパティーを取得するビルド構成のIDです。現在の構成がスナップショットまたは成果物の依存関係を持っている構成のみがサポートされます。間接的な依存関係の設定も可能です(たとえば、AはBに依存し、BはCに依存します - AはCのプロパティーを利用可能にします)。

  • <property name> - 指定されたIDを持つビルド構成のビルドパラメーターの名前。

依存関係プロパティーの上書き

現在のビルドが開始されたときに、スナップショット依存ビルドでビルドパラメーターを再定義することが可能です。例:ビルド構成AはBに依存し、BはCに依存します。Aをトリガーするとき、以下のフォーマットを使用して、その依存関係の中のパラメーターを変更することができます。

reverse.dep.<btID>.<property name>

この構文を使用して、すべての依存関係のパラメータを一度に変更できます。

reverse.dep.*.<property name>

パラメータがBで再定義されていても、Aのみがトリガされた場合、パラメータは変更されません。

ビルド構成AとBがビルド構成Cの同じパラメーターに異なる値を設定しようとしている場合は、以下の規則が適用されます。

  • Aがスナップショット依存関係によって直接的または推移的にBに依存する場合、Aによって提案された値がCで使用されます。(もしBがAに依存していれば)

  • AとBの両方が互いに依存していない場合、TeamCityはそれを競合と見なし、Cの元の値を変更しません。代わりに、Cに対して2つの他のパラメーターが作成されます。
    • conflict.<btA>.<property name>=<valueA>
    • conflict.<btB>.<property name>=<valueB>

reverse.dep. パラメーターは、パラメーターが定義されているビルドのキューイング時に処理されます。パラメータの値はその段階でわかっているはずなので、ビルド設定パラメータとして、またはカスタムビルドダイアログでのみ定義できます。ビルド中にパラメータを設定しても効果はありません。

新しいパラメーターをビルドにプッシュすると、「適切なものがある場合は、新しいビルドを実行しないでください」スナップショット依存関係オプションが置き換えられ、パラメーターがデフォルト以外の値に設定されている場合は新しいビルドがトリガーされる可能性があります。

reverse.dep. パラメータの値は、参照解決なしで「そのまま」依存関係ビルドにプッシュされることに注意してください。もしあれば、% - 参照は、パラメータがプッシュされるビルドのコンテキストで解決されます。
<property name> は、上記のビルド構成で設定するプロパティーの名前です。システムプロパティーを設定するには、<property name>system. プレフィックスを含める必要があります。

VCSのプロパティー

これらは、ビルド構成に添付されているVCSルートの設定です。

VCSプロパティーの形式は以下のとおりです。

vcsroot.<VCS root ID>.<VCS root property name>
  • <VCS root ID> - VCSルートの設定ページに従ってVCSルートIDです。

  • <VCS root property name> - VCSルートプロパティーの名前。これはVCS固有のもため、VCSサポートによって異なります。上記のように利用可能なプロパティーのリストを取得できます。ビルド構成にVCSルートが1つしかない場合は、<VCS root ID>. 部分を省略できます。

VCSサポートで secure とマークされているプロパティー(パスワードなど)は、参照プロパティーとして使用できません。

分岐関連のパラメータ

TeamCityは、ブランチ仕様が構成されているビルド構成でビルドを開始するときに、各ビルドにブランチラベルを追加します。この論理ブランチ名は、構成パラメーターとしても使用できます。

teamcity.build.branch

デフォルトとデフォルト以外のブランチで開始されたビルドを区別するために、7.1.5以降にこれらのケースを区別することができる追加のブール構成パラメーターがあります。

teamcity.build.branch.is_default=true|false

Git&Mercurialの場合、TeamCityは、ビルド開始時に既知のVCS ブランチという名前の追加パラメータを提供します。構成されているブランチ仕様に従って、これらが論理ブランチ名と異なる場合があることに注意してください。このVCS ブランチは、次の名前の設定パラメータから入手できます。

teamcity.build.vcs.branch.<VCS root ID>

<VCS root ID>VCSルートの設定ページに従ってVCSルートIDです。

その他のパラメータ

パラメーター名

説明

teamcity.build.triggeredBy

ビルドがトリガーされた方法のわかりやすい説明

teamcity.build.triggeredBy.username

ビルドがユーザーによって起動された場合は、このユーザーのユーザー名が報告されます。ユーザーによってではなくビルドがトリガーされた場合、このプロパティーは報告されません。

エージェントのプロパティー

エージェント固有のプロパティーは各ビルド・エージェントに定義されており、その環境によって異なります。標準プロパティー(たとえば、teamcity.agent.jvm.os.nameteamcity.agent.jvm.os.archなど - これらはエージェント上で実行されているJVMによって提供されます) - エージェントには、インストールされているアプリケーションに基づくプロパティーもあります。TeamCityは、.NET フレームワーク、Visual Studioの存在を含む多数のアプリケーションを自動的に検出し、対応するシステムプロパティーと環境変数を追加します。以下のに、定義済みのエージェント固有のプロパティーの一覧を示します。

追加のアプリケーション/ライブラリーが環境で利用可能な場合、管理者は <agent home>/conf/buildAgent.properties ファイルのプロパティーを手動で定義できます。これらのプロパティーは、さまざまなビルド構成オプションの設定、ビルド構成要件の定義(一部のプロパティーの有無など)、およびビルドスクリプト内で使用できます。これらのプロパティーを参照する方法の詳細については、ビルド構成でのビルドパラメータの定義と使用セクションを参照してください。

TeamCity Web UIでは、エージェントで定義された実際のプロパティーは、上部ナビゲーションバー<エージェント> | <エージェント>ページのエージェントタブに移動して確認できます。| エージェントパラメータタブ:

定義済みプロパティー

説明

teamcity.agent.name

buildAgent.properties エージェント構成ファイルに指定されているエージェントの名前。特定のビルドエージェントで実行する(または実行しない)ビルド構成の要件を設定するために使用できます。

teamcity.agent.work.dir

エージェント作業ディレクトリーのパス

teamcity.agent.work.dir.freeSpaceMb

エージェント作業ディレクトリーの空き容量

teamcity.agent.home.dir

エージェントホームディレクトリーのパス

teamcity.agent.tools.dir

エージェントのツールディレクトリーへのパス

teamcity.agent.jvm.os.version

対応するJVMプロパティー (プロパティーの説明についてはJDKのヘルプ(英語)を参照してください)

teamcity.agent.jvm.user.country

対応するJVMプロパティー (プロパティーの説明についてはJDKのヘルプ(英語)を参照してください)

teamcity.agent.jvm.user.home

対応するJVMプロパティー (プロパティーの説明についてはJDKのヘルプ(英語)を参照してください)

teamcity.agent.jvm.user.timezone

対応するJVMプロパティー (プロパティーの説明についてはJDKのヘルプ(英語)を参照してください)

teamcity.agent.jvm.user.name

対応するJVMプロパティー (プロパティーの説明についてはJDKのヘルプ(英語)を参照してください)

teamcity.agent.jvm.user.language

対応するJVMプロパティー (プロパティーの説明についてはJDKのヘルプ(英語)を参照してください)

teamcity.agent.jvm.user.variant

対応するJVMプロパティー (プロパティーの説明についてはJDKのヘルプ(英語)を参照してください)

teamcity.agent.jvm.file.encoding

対応するJVMプロパティー (プロパティーの説明についてはJDKのヘルプ(英語)を参照してください)

teamcity.agent.jvm.file.separator

対応するJVMプロパティー (プロパティーの説明についてはJDKのヘルプ(英語)を参照してください)

teamcity.agent.jvm.path.separator

対応するJVMプロパティー (プロパティーの説明についてはJDKのヘルプ(英語)を参照してください)

teamcity.agent.jvm.specification

対応するJVMプロパティー (プロパティーの説明についてはJDKのヘルプ(英語)を参照してください)

teamcity.agent.jvm.version

対応するJVMプロパティー (プロパティーの説明についてはJDKのヘルプ(英語)を参照してください)

teamcity.agent.jvm.java.home

詳細については以下のセクションを参照してください

teamcity.agent.os.arch.bits

TeamCity 10.0以降エージェントのOSのビット数

DotNetFramework<version>[_x86|_x64]

このプロパティーは、対応するバージョンの.NET フレームワークランタイムがインストールされている場合に定義されます。(サポートされているバージョンは1.1, 2.0, 3.5、4.0(英語) - 4.6.1です)

DotNetFramework<version>[_x86|_x64]_Path

このプロパティー値は、対応するフレームワークランタイムバージョンのパスに設定されます。

DotNetFrameworkSDK<version>[_x86|_x64]

このプロパティーは、対応するバージョンの.NET フレームワーク SDKがインストールされている場合に定義されます。(サポートされているバージョンは1.1、2.0(英語)です )

DotNetFrameworkSDK<version>[_x86|_x64]_Path

このプロパティー値は、対応するフレームワークSDKバージョンのパスです。

DotNetFrameworkTargetingPack<version>_Path

このプロパティー値は、対応する参照アセンブリ(AKA Targeting Pack)の場所へのパスです。(サポートされているバージョンは2.0 - 4.6.1です)

WindowsSDK<version>

このプロパティーは、対応するバージョンのWindows SDKがインストールされている場合に定義されます。(サポートされているバージョンは6.0, 6.0A、7.0(英語)、7.0A、7.1(英語)、8.0, 8.0A、8.1, 8.1A、10です。)

WindowsSDK<version>_Path

このプロパティー値は、対応するバージョンのWindows SDKのパスです。

VS[2003|2005|2008|2010|2012|2013|2015|2017]

このプロパティーは、Visual Studioの対応するバージョンがインストールされている場合に定義されます。

VS[2003|2005|2008|2010|2012|2013|2015|2017]_Path

このプロパティー値は、devenv.exeを含むディレクトリーへのパスです。

teamcity.dotnet.nunitlauncher<version>

このプロパティー値は、スタンドアロンのNUnitテストランチャー NUnitLauncher.exeを含むディレクトリーへのパスです。バージョン番号は、テストが実行される.NET フレームワークのバージョンを表します。バージョンは.NET フレームワークのバージョンと同じで、1.1, 2.0、つまり2.0vstsの値を持つことができます。

teamcity.dotnet.nunitlauncher.msbuild.task

プロパティー値は、MSBuild用のNUnitタスクを提供するMSBuildタスクdllを含むディレクトリーへのパス、Visual Studio(sln)です。

teamcity.dotnet.msbuild.extensions2.0

プロパティー値は、MSBuild 2.0リスナアセンブリとタスクアセンブリを含むディレクトリーへのパスです。

teamcity.dotnet.msbuild.extensions4.0

プロパティー値は、MSBuild 4.0リスナーおよびタスクアセンブリを含むディレクトリーへのパスです。

teamcity.agent.ownPort

TeamCityサーバーがエージェントに接続するために使用するエージェントポート

teamcity.agent.protocol

エージェントとサーバー間のデータ転送に使用されるプロトコル

teamcity.agent.cpuBenchmark

エージェントのCPUベンチマーク結果

teamcity.agent.hardware.cpuCount

ビルドエージェントシステムのプロセッサ数

teamcity.agent.hostname

ビルドエージェントホストの名前

エージェント環境変数

エージェントはいくつかの環境変数を定義できます。これらの変数は、通常の環境変数としてビルドスクリプトで使用できます。

Javaホームディレクトリー

ビルドエージェントが起動すると、まずインストールされているJDKとJREが検出されます。見つかった場合、Java関連の環境変数は以下のセクションで説明されているように定義されます。

エージェント上のJavaの検出

インストールされたJavaは、下記のすべての場所で検索されます。次に、検出されたすべてのJavaが起動され、それが有効なJavaインストールであることを確認し、その出力に基づいてJavaのバージョンとビット数が決定されます。

次の場所が検索されます(いくつかの場所はすべてのオペレーティングシステムに共通ですが、そのうちのいくつかはOS固有のものです)。

  • 定義されている場合は、エージェント上のカスタムディレクトリーでJavaインストールが検索されます。Javaを検索するためのカスタムディレクトリーの定義については後述します。

  • エージェントツールディレクトリー <Agent Home Directory>/tools, にjreまたはjdkが含まれているかどうかがチェックされます。デフォルトでは、/tools のサブディレクトリーはスキャンされません。サブディレクトリーを検索するには、buildAgent.properties ファイルで teamcity.agent.java.search.path=%agent.tools.NAME%/INNER_PATH を定義します。
    UnixおよびMac OSの場合、TeamCityのファイルに実行可能ビット(英語)設定して(英語)、検出されたJavaを起動できるようにしてください。

  • JAVA_HOME , JDK_HOME , JRE_HOME 変数が定義されているかどうかがチェックされます

  • 次のセクションで聞く、OS固有の場所がチェックされます

  • PATH 環境変数が検索され、ディスカバーされたディレクトリーにJavaが含まれているかどうかが検査されます。

Windows

  • Windowsレジストリで、JavaインストーラでインストールされたJavaを検索します。

  • C:\Program Files および C:\Program Files (x86) ディレクトリーで Java および JavaSoft サブディレクトリーが検索されます

  • C:\Java ディレクトリーが検索されます

Unix

次のディレクトリーでJavaサブディレクトリーが検索されます。

  • /usr/local/java
  • /usr/local
  • /usr/java
  • /usr/lib/jvm
  • /usr

Mac OS次のディレクトリーが検索されます。

  • /System/Library/Frameworks/JavaVM.framework/Versions/<Java Version>/Home
  • /Library/Java/JavaVirtualMachines/Versions/<Java Version>/Home
  • /Library/Java/JavaVirtualMachines/<Java Version>/Contents/Home

Javaを検索するためのカスタムディレクトリーの定義

teamcity.agent.java.search.path プロパティーを buildAgent.properties ファイルに追加することで、エージェント上でJavaインストールを検索するためのカスタムディレクトリーを定義できます。

OS依存の文字で区切られたディレクトリーのリストを定義できます。

Java関連の環境変数の定義

javaのメジャーバージョンVごとに、以下の変数を定義できます。

  • JDK_1V
  • JDK_1V_x64
  • JRE_1V
  • JRE_1V_x64

JDK変数はJDKが見つかったときに定義され、JRE変数はJREが見つかったときに定義されますがJDKは見つかりません。
_x64変数は64ビットjavaのみを指します。_x64サフィックスのない変数は、32ビットまたは64ビットの両方のインストールを指している可能性がありますが、32ビットのものが推奨するです。
同じメジャーバージョンと同じbitnessを持つが異なるマイナーバージョン/アップデートを持つインストールが複数見つかった場合は、最新のものが選択されます。

さらに、以下の変数が定義されています。

  • JAVA_HOME - 最新のJDKインストール用 (しかし32ビットの方が推奨する)

  • JDK_HOME - JAVA_HOMEと同じ

  • JRE_HOME - 最新のJREまたはJDKインストール用(ただし32ビット版が推奨)、JDKが見つかった場合でも定義されます。

JRE_HOME 変数と JDK_HOME 変数は異なるインストールを指すことがあります。たとえば、JRE 1.7とJDK 1.6がインストールされているがJDK 1.7がインストールされていない場合 - JRE_HOME はJRE 1.7を指し、JDK_HOME はJDK 1.6を指します。

すべての変数は、バイナリファイルではなく、javaホームディレクトリーを指します。例:javacバージョン1.6を実行したい場合は、次のパスを使用できます。

TeamCityビルド構成

%env.JDK_16%/bin/javac

Windowsのbat / cmdファイル

%JDK_16%bin\javac

UNIXシェルスクリプトでは:

$JDK_16/bin/javac

エージェントビルドプロパティー

これらのプロパティーはビルドごとに一意です。これらは、ビルド開始直前にエージェントで計算されてからビルドに渡されます。

システムプロパティー名

環境変数名

説明

teamcity.build.checkoutDir

なし

チェックアウトディレクトリーはビルドに使用されました。

teamcity.build.workingDir

なし

ビルドが開始された作業ディレクトリー。これはTeamCityビルドランナーがプロセスを開始することになっているパスです。これはランナー特有の特性なので、新しいステップごとに異なる値を持ちます。

teamcity.build.tempDir

なし

TeamCityによって自動的に生成されたビルド一時ディレクトリーのフルパス。ディレクトリーはビルド後に消去されます。

teamcity.build.properties.file

TEAMCITY_BUILD_PROPERTIES_FILE

ビルドに渡されたすべての system.* プロパティーを含むファイルのフルネーム(パスを含む)。"システム。"接頭辞が削除されました。ファイルはJavaプロパティー(英語)ファイル形式を使用します(たとえば、特殊記号はバックスラッシュでエスケープされます)。

teamcity.build.changedFiles.file

なし

ビルドに含まれる変更されたファイルに関する情報を含むファイルへのフルパス。このプロパティーは、テストランナーで新規および変更されたテストの実行(英語)サポートする(英語)場合に役立ちます。このファイルは、ビルドに変更があった場合にのみ使用可能です。履歴ビルドには使用できません。

カスタムテストランナーのリスクテストの並べ替え(英語)に関連するシステムプロパティーも参照してください。