2012-01-20 3 views
2

私は自分のワークスペースディレクトリをC:\jenkins_builds\workspaceに設定しました。それぞれローカルワークフォルダ(プロジェクト名と同じ)を持つProjAProjBをビルドします。 Jenkins:TFSリポジトリから複数のプロジェクトをビルドするには?

私のリポジトリからソースコードを取得

は、TFSプラグインが最初に二つのものがあります: ProjAを構築する際に細かい行く

tf workspace -new %workspace-name-A%;%user-name% -server:%my-server% 

tf workfold -map $%branch% ProjA -workspace:%workspace-name-A% -server:%my-server% 

。問題は、最初のコマンドは、ルートディレクトリをリポジトリから直接私のC:\jenkins_builds\workspaceディレクトリにマップすることです。 2番目のコマンドは、実際に欲しいもの、つまり%branch%ProjAというサブフォルダにマッピングします。後でProjBを構築するときに、最初のコマンドは、次のエラーメッセージを表示して(その結果、ビルドを)失敗:

The path C:\jenkins_builds\workspace is already mapped in workspace %workspace-name-A%;%user-name%. 

OK、作業ディレクトリへのルートディレクトリをマップするために悪いアイデアのように思えます。しかし、TFSプラグインがworkspace new行を実行しているときに、これはなぜ自動的に発生しますか?現在、-unmapコマンドを実行して、ProjAProjBのビルドを行う必要があります。

私のチームはTeam Foundation 3.0を使用しています。

+0

これは価値がありますが、これを引き起こすのは 'workspace -new'行ではなく、作業フォルダマッピングを作成する2行目です。作業フォルダのマッピングは、作業領域内のサーバーパスに対して一意でなければなりません。 –

+0

エドワード、フィードバックいただきありがとうございます。それは私が最初に考えたものです。 2行目は、ブランチ名とプロジェクトサブフォルダの間のマッピングを作成します(考えられるように)。ただし、コマンドプロンプトからコマンドを実行すると、実際にはTFSリポジトリの作業フォルダ "C:\ jenkins_builds \ workspace"と "$ /"が最初にマッピングされます。まさに逆の直観的な、そうですか?これが私の頭痛を引き起こす原因です。 – user1160298

答えて

1

私たちは、同じような状況があり、これを解決する2つの方法があります。

  • は、2つの
    を構築するためにこれはダブル> = 2つのチェックアウトが必要になり別のワークスペース・ルート・ディレクトリを使用スペースと遅くなりますが、両者の間のより良いアイソレーションがデフォルトのJenkinsの
    を構築するの両方で同じにワークスペース名を「ハードコーディング」
  • を構築するには、ビルド名を含むワークスペースを作成しますこれはTFS設定の "advanced"セクションで変更することができ、複数のビルドに対して同じワークスペース/ワークフォルダマッピングを使用することができます - この場合はProjectName_${NODE_NAME}と呼ばれ、いくつかのノードでも機能するようにします。
+0

アドバイスありがとうございます!第2の解決法は、我々には十分なようだが、それにはいくつかの欠点があるかもしれない。私たちはあなたの最初の解決策を使用することに失敗しました。私が間違っていないと、ワークスペースのルートディレクトリはJenkinsのためにグローバルなのでしょうか?最初のソリューションを実装する方法を説明できますか? – user1160298

+0

いいえ、Jenkinsの各ジョブには独自のワークスペースルートがあります。ビルドに同じものがある場合は、それらを既に変更しておく必要があります。デフォルトでは '$ {ITEM_ROOTDIR}/workspace'です(" advanced "と打った後のメインJenkinsの設定にあります)... – ChrFin