执行詹金斯作业后删除TFS工作空间映射

时间:2020-03-16 09:28:40

标签: jenkins tfs jenkins-plugins tfvc

我正在尝试运行使用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命令

2 个答案:

答案 0 :(得分:0)

您可以使用tf.exe后发布脚本,通过delete命令删除TFVC工作区。

创建一个全局环境变量,以便能够更轻松地访问TF.exe。例如:

enter image description here

注意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批处理命令来处理此过程。

enter image description here

如果要删除工作空间,只需添加一个新的帖子构建步骤,可以添加清理命令以删除以前创建的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