我正在尝试运行使用TFVC插件的Jenkins作业。我们之前遇到了TFS工作空间名称长度的问题(长度> 75个字符的例外)。为了解决这个问题,我们对TFVC配置进行了更改。
TFVC中的默认工作空间名称:Hudson-${JOB_NAME}-${NODE_NAME}
更改后:Hudson-${JOB_NAME}
发布此更改后,作业运行成功。由于无法删除成功运行期间创建的TFS工作空间,因此我们无法重复运行此命令。并抛出以下异常:
FATAL: hudson.remoting.ProxyException: com.microsoft.tfs.core.exceptions.TECoreException: The workspace scanAPI;tfsjenkins already exists on computer ip-XX-XX-XX-XX.
我尝试在构建之前/之后的步骤中删除Jenkins工作区。这对TFS工作空间没有影响。
其他信息:作业正在linux节点上运行,因此我无法运行Windows命令
答案 0 :(得分:0)
您可以使用tf.exe后发布脚本,通过delete
命令删除TFVC工作区。
创建一个全局环境变量,以便能够更轻松地访问TF.exe。例如:
注意:tf.exe
的路径取决于Jenkins计算机中安装的Visual Studio。
使用以下命令从脚本菜单添加Windows批处理命令:
%TFS% workspace /delete /noprompt /collection:”https://tfs.codeplex.com:443/tfs/TFS27″ “Hudson-%JOB_NAME%;snd\7astlivec_cp”
用TFS服务器URL替换URL,并用TFS用户更改snd \ 7astlivec_cp。该命令将删除新创建的TFS工作区。
另一种选择是将tf.exe.
位置添加到机器PATH
变量中并直接使用它:tf workspace /delete .......
答案 1 :(得分:0)
更新
对于Linux,您应该可以通过团队资源管理器随处使用。它还包括一个tf命令行。
看看Setting up a workspace using Team Explorer Everywhere on Linux
在Linux上应该类似。
除了通过在UI设置中指定工作空间名称来创建默认工作空间外,您还可以使用 Windows批处理命令来处理此过程。
如果要删除工作空间,只需添加一个新的帖子构建步骤,可以添加清理命令以删除以前创建的TFS工作空间。
%TFS% workspace /delete /noprompt /collection:"{your-tfs-team-project-collection-url}" "Hudson-%JOB_NAME%;{your-domain-user-name}"
更多详细信息,请参考本分步指南Jenkins Get Source Code By Specific TFS Changeset