TFS 2015:如何设置两个不同的构建定义以使用相同的本地存储库 (git)?
TFS2015: How to set two different build definiton to use the same local repository (git)?
我在 TFS2015 中有两个不同的构建定义,如您在图片 Def1 和 Def2 中所见。他们从同一个分支构建不同的解决方案并使用相同的 VSO 构建代理(服务器上只安装了 1 个实例)。
当我对构建进行排队时,Def1 构建会将存储库检出到与 Def2 不同的本地文件夹中。 (例如:c:\TfsData\Build_work\ee25a947 和
c:\TfsData\Build_work\faee67a3) 但我想强制他们使用相同的本地 git 存储库(因为不需要两个不同的本地存储库,他们将使用不同的构建步骤构建不同的解决方案)。
有什么方法可以配置吗?
谢谢
假设您指的是开始获取资源的过程。构建后检查构建日志时,您会看到:
Syncing repository: TeamProjectName (Git)
Checking out xxxx to C:\a\s
Checked out branch refs/heads/branch for repository TeamProjectName
at commit xxxx
实际上,xxxx默认是你分支中的最新提交ID,构建时默认会检出最新提交。 character/number 是提交 ID。
不,无法让构建代理将两个解决方案放在同一位置。系统正确地假定,作为构建的一部分可能会对源进行更改,因此它需要单独构建。
这是为了防止构建之间的渗漏。
如果您使用自己的代理而不是云代理,那么您可以执行以下操作:
- 转到您配置的工作文件夹
- 转到 'sourceRootMapping\' 文件夹
- 打开 'SourceFolder.json' 并将其中的目录路径更新为您要用于 'def2' 构建定义的相同存储库路径。
以下是我们必须更新的值:
"build_artifactstagingdirectory": "1\a",
"agent_builddirectory": "1",
"build_sourcesdirectory": "1\s",
"common_testresultsdirectory": "1\TestResults",
更新这些后,'def1' 和 'def2' 构建定义之间的获取源步骤开始使用“1\”下的相同存储库路径
确保 "SourceRootMappings\Mappings.json" 的 "lastBuildFolderNumber" 值不为 0。如果是这种情况,并且您开始将此构建代理用于新的构建定义,它将覆盖您之前的存储库。
我在 TFS2015 中有两个不同的构建定义,如您在图片 Def1 和 Def2 中所见。他们从同一个分支构建不同的解决方案并使用相同的 VSO 构建代理(服务器上只安装了 1 个实例)。 当我对构建进行排队时,Def1 构建会将存储库检出到与 Def2 不同的本地文件夹中。 (例如:c:\TfsData\Build_work\ee25a947 和 c:\TfsData\Build_work\faee67a3) 但我想强制他们使用相同的本地 git 存储库(因为不需要两个不同的本地存储库,他们将使用不同的构建步骤构建不同的解决方案)。 有什么方法可以配置吗?
谢谢
假设您指的是开始获取资源的过程。构建后检查构建日志时,您会看到:
Syncing repository: TeamProjectName (Git)
Checking out xxxx to C:\a\s
Checked out branch refs/heads/branch for repository TeamProjectName at commit xxxx
实际上,xxxx默认是你分支中的最新提交ID,构建时默认会检出最新提交。 character/number 是提交 ID。
不,无法让构建代理将两个解决方案放在同一位置。系统正确地假定,作为构建的一部分可能会对源进行更改,因此它需要单独构建。
这是为了防止构建之间的渗漏。
如果您使用自己的代理而不是云代理,那么您可以执行以下操作:
- 转到您配置的工作文件夹
- 转到 'sourceRootMapping\' 文件夹
- 打开 'SourceFolder.json' 并将其中的目录路径更新为您要用于 'def2' 构建定义的相同存储库路径。
以下是我们必须更新的值:
"build_artifactstagingdirectory": "1\a",
"agent_builddirectory": "1",
"build_sourcesdirectory": "1\s",
"common_testresultsdirectory": "1\TestResults",
更新这些后,'def1' 和 'def2' 构建定义之间的获取源步骤开始使用“1\”下的相同存储库路径
确保 "SourceRootMappings\Mappings.json" 的 "lastBuildFolderNumber" 值不为 0。如果是这种情况,并且您开始将此构建代理用于新的构建定义,它将覆盖您之前的存储库。