web-dev-qa-db-ja.com

TeamCityビルドエージェントはどこからパス環境を取得しますか?

TeamCityをセットアップしてプロジェクトをビルドしようとしていますが、psakeビルドスクリプトが失敗します。その理由は、パス上にあるはずのgit実行可能ファイルを見つけることができないために絞り込まれています。 PowerShellを起動して自分で実行すると、すべてが正常に動作します。

Path環境変数(Windows環境変数ダイアログのシステム変数リストとHKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment\Pathのレジストリ)の内容は次のとおりです。

%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;c:\Program Files (x86)\Microsoft SQL Server\90\Tools\binn\;c:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL Server\100\DTS\Binn\;c:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\;c:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files (x86)\Git\cmd

それでもTeamCityは、そのenv.Pathは

C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;c:\Program Files (x86)\Microsoft SQL Server\90\Tools\binn\;C:\Windows\System32\WindowsPowerShell\v1.0

コンピュータを再起動しました(何度も)何の助けにもなりません。

TeamCityビルドエージェントのPATH変数がシステムデフォルトと異なるのはなぜですか、どうすれば修正できますか?

38
erikkallen

私はこの同じ問題に遭遇し、PATH変数への変更を取得するために、Team City Build Agent Serviceを再起動するだけで済みました。

19
Sean

Mac OSおよびLinuxでは、「env.PATH」という名前のビルドパラメーターに次の値を追加することで、ビルドエージェントのパスを拡張できます。

%env.PATH%:/my/path

Windowsでは「;」を使用しますパス区切り文字として「:」の代わりに。

ビルドエージェントのインストールディレクトリのconf/buildAgent.propertiesに以下を追加することもできます。

env.PATH=%env.PATH%:/my/path

(ファイルの下部に、環境変数の設定方法を示すコメントがあります。)

15
mockaroodev

以前のいくつかの答えは正しいですが、詳細が不足しています(そして、それらを本当に理解するのに少し時間がかかります)—デフォルトエージェントが環境変数をどこに取るかは私には明確ではありません。エージェント構成でそれらを明確に修正します。

TeamCity/buildAgent/conf/buildAgent.propertiesファイルをenv.PATH=/usr/whateverで編集するとうまくいきます。ドキュメントには 小さなヒント があります。

そのファイルを編集したら、UIのAgents > Default Agent > Agent Parameters > Environment Variablesで、それらが更新されていることを確認できます(注意、考えて、これらの変数は、エージェントが接続されている場合にのみ、UIで更新されます。 、UIには以前の値が表示されます)。

9
yves amsellem

ソリューションはビルド構成/ 6ビルドパラメーターにあり、そこでenv。[ANYTHING]変数をオーバーライドできます。

追伸Sryそれを聞いて。私はまだTeamCityで成功する決意です。

4
tishma

Tishmaのコメントでほのめかされた私の解決策は、UserPath環境変数を変更し、Team City Build Agent Serviceを再起動することでした

編集: このバグ はTeamCity 7.1で修正されました

4