使用 Build/Release 管道任务将更改从 AzureDevOps git 存储库上传到私有 TFS 服务器
Upload changes from AzureDevOps git repo to private TFS server using Build/Release pipeline task
我在 dev.azure.com(AzureDevops) 上托管了一个 GIT 存储库,在私有服务器上托管了一个本地 TFVC 存储库(我无权访问机器,我只能访问它的网络门户)。两者具有相同的代码。
我在 AzureDevops 中为我的 GIT 存储库创建了构建和发布管道,运行良好。但是现在,每次在 AzureDevops 中执行管道时,我想从 GIT 存储库更新我的 TFVC 存储库,作为 Build/Release 管道任务。
没有任何可能发生冲突的可能性,因为没有其他人会签入对我的 TFVC 存储库的更改。
有什么办法可以实现吗?
您可以在您的 TFS 存储库计算机上部署 self-hosted agent。并在 Build/Release 管道中添加一个脚本任务来更新存储库。
我要做的是向您的 Azure DevOps 服务存储库添加一个远程指向您的内部 TFS(只要您的内部 TFS 从 Internet 可见)然后在您的构建(在服务中)中您可以调用 git 推送内部来源。现在,如果你不能从网络上看到你的内部 TFS,那么像 Cece 提到的那样,在你的 TFS 服务器上安装一个构建代理,并在构建中创建一个代理步骤,然后调用一个内联 powershell 来添加一个远程,然后调用 git 像这样推送 internalorigin
然后在脚本中你可以这样做
git remote add internalorigin https://TFSSERVER/COLLECTION/_git/REPO
git push -u internalorigin --all
更新:
从 Git 转到 TFVC,您的内联脚本会将本地文件从构建复制到本地 TFVC 工作区,然后使用 TF.exe 签入类似这样的内容
copy c:\agent\_work\s c:\workspace /Y
cd c:\workspace
"C:\Program Files (x86)\Microsoft Visual Studio19\Enterprise\Common7\IDE\CommonExtensions\Microsoft\Team Foundation\Team Explorer\TF.exe" vc checkin /comment:"comment" /noprompt /recursive *
您必须首先从命令行尝试它,确保它可以正常工作,然后将其放入内联脚本中。
按照 Etienne 所说的进行操作,但如果您的目标存储库是 tfvc,请将命令行任务添加到您的管道中,使用 tf.exe(而不是 git)上传并提交到您的 tfvc 存储库,并管理工作区。
我在 dev.azure.com(AzureDevops) 上托管了一个 GIT 存储库,在私有服务器上托管了一个本地 TFVC 存储库(我无权访问机器,我只能访问它的网络门户)。两者具有相同的代码。
我在 AzureDevops 中为我的 GIT 存储库创建了构建和发布管道,运行良好。但是现在,每次在 AzureDevops 中执行管道时,我想从 GIT 存储库更新我的 TFVC 存储库,作为 Build/Release 管道任务。
没有任何可能发生冲突的可能性,因为没有其他人会签入对我的 TFVC 存储库的更改。
有什么办法可以实现吗?
您可以在您的 TFS 存储库计算机上部署 self-hosted agent。并在 Build/Release 管道中添加一个脚本任务来更新存储库。
我要做的是向您的 Azure DevOps 服务存储库添加一个远程指向您的内部 TFS(只要您的内部 TFS 从 Internet 可见)然后在您的构建(在服务中)中您可以调用 git 推送内部来源。现在,如果你不能从网络上看到你的内部 TFS,那么像 Cece 提到的那样,在你的 TFS 服务器上安装一个构建代理,并在构建中创建一个代理步骤,然后调用一个内联 powershell 来添加一个远程,然后调用 git 像这样推送 internalorigin
然后在脚本中你可以这样做
git remote add internalorigin https://TFSSERVER/COLLECTION/_git/REPO
git push -u internalorigin --all
更新:
从 Git 转到 TFVC,您的内联脚本会将本地文件从构建复制到本地 TFVC 工作区,然后使用 TF.exe 签入类似这样的内容
copy c:\agent\_work\s c:\workspace /Y
cd c:\workspace
"C:\Program Files (x86)\Microsoft Visual Studio19\Enterprise\Common7\IDE\CommonExtensions\Microsoft\Team Foundation\Team Explorer\TF.exe" vc checkin /comment:"comment" /noprompt /recursive *
您必须首先从命令行尝试它,确保它可以正常工作,然后将其放入内联脚本中。
按照 Etienne 所说的进行操作,但如果您的目标存储库是 tfvc,请将命令行任务添加到您的管道中,使用 tf.exe(而不是 git)上传并提交到您的 tfvc 存储库,并管理工作区。