【问题标题】:Delete TFS workspace mapping after jenkins job executionjenkins作业执行后删除TFS工作区映射
【发布时间】:2020-06-27 09:51:58
【问题描述】:

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

【问题讨论】:

  • 嗨,Shurmajee,对此有任何更新,您有机会实施我建议的解决方案吗?使用 tf 命令删除 tf 工作区是否可以解决?
  • @PatrickLu-MSFT 为延迟响应道歉,但我们为此使用基于 linux 的节点,我无法运行您提到的命令。
  • 嗨 Shurmajee,您应该可以通过团队资源管理器在任何地方使用它。它还包括一个 tf 命令行。看看stackoverflow.com/questions/6958530/…应该差不多吧。

标签: jenkins tfs jenkins-plugins tfvc


【解决方案1】:

您可以使用 tf.exe 的 Post Build 脚本通过 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”

将 URL 替换为您的 TFS 服务器 URL,并将 snd\7astlivec_cp 更改为您的 TFS 用户。该命令将删除新创建的 TFS 工作区。

另一种选择是将tf.exe.位置添加到机器PATH变量并直接使用:tf workspace /delete .......

【讨论】:

    【解决方案2】:

    更新

    对于 Linux,您应该可以通过 team explorer 随处使用它。它还包括一个 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

    【讨论】:

      猜你喜欢
      • 2013-03-24
      • 1970-01-01
      • 1970-01-01
      • 2015-04-02
      • 2018-11-21
      • 1970-01-01
      • 2013-10-28
      • 2021-04-23
      • 1970-01-01
      相关资源
      最近更新 更多