Jenkinsフレームワーク内からプロジェクトをビルドおよびデプロイするために作成したAntスクリプトを移行しようとしています(最初にアプローチした便利な方法であるSVNのコミット後フックからトリガーされるのではありません)。デプロイステップ用にファイルをステージングする必要があり、Jenkinsがジョブ用に作成する「build」ディレクトリにファイルを詰め込みたいことを除いて、すべてが素晴らしいです(そして、build.xmlはプロジェクト固有ではない場所にあるため、$ { basedir}と${user.dir}が目的の場所を指していません)。
Jenkins構成内で、次のように設定しました。
[Jenkins]ビルドレコードルートディレクトリ:E:/ builds / $ {ITEM_FULLNAME}
[ジョブ固有]ビルドファイル:C:\ vc-tools \ shadow \ build.xml
ビルドを実行すると、スクリプトが適切に起動され、ジョブ固有のビルドディレクトリが作成されます。
E:\ builds \ Test \ 2012-08-07_12-51-21
ビルドスクリプト内からこのディレクトリにアクセスしたいのですが、方法がわかりません。私が試したことのいくつか:
[echo] ${basedir}: C:\vc-tools\shadow
[echo] ${user.dir}: C:\vc-tools
[echo] ${env.workspace}: C:\Program Files (x86)\Jenkins\workspace\Test
[echo] ${env.build_id}: 2012-08-07_12-51-21
[echo] ${jenkins_home}: C:\Program Files (x86)\Jenkins
[echo] ${BuildDir}: E:/builds/${ITEM_FULLNAME}
注:最後の1つについては、次のパスを試してみました。
BuildDir=E:/builds/${ITEM_FULLNAME}
Jenkins内のジョブから構成されたプロパティとして(このコンテキストでは明らかに$ {}拡張は行われません)。
ドキュメントによると、完全なビルドディレクトリパスに設定されている特定の環境変数はありません-E:\ buildsルートをハードコーディングし、$ {env.build_id}を追加することで、それを推測できますが、スクリプトをより柔軟にするために、Jenkinsが公開するもの(Antプロパティと環境変数のいずれか)から完全なパスにアクセスするためのより簡単な方法。
Jenkinsバージョン1.476を使用しています。
ありがとう