gpt4 book ai didi

git - TFS Build 在推送到远程代表时挂起

转载 作者:太空狗 更新时间:2023-10-29 14:23:27 26 4
gpt4 key购买 nike

我编写了 powershell 脚本,我在 (tfs 2013 build) 中的测试运行器之前执行该脚本。当脚本使用 ssh 在远程存储库上调用 git push 时,构建挂起。如果我使用相同的用户从构建代理上的 powershell 运行相同的脚本,它完全可以正常工作。如果它通过 buildcontroller 触发,它就会挂起。

我的 LAN 中确实有一个测试系统,它也可以正常工作。登台服务器托管在此环境之外。但正如我之前所说:当我直接从构建代理的 powershell 以同一用户身份执行脚本时,它会起作用。

这就是我做的

Set-Location $Env:TF_BUILD_SOURCESDIRECTORY

$gitArgs = @(
'remote -v add {0} ssh://{1}@{2}{3}' -f $DeploymentEnvironment, $DeploymentUser, $ServerHost, $ServerRepoPath; ,
'push -v --progress {0} master ' -f $DeploymentEnvironment; )

Write-Verbose "Executing git commands"

$gitArgs | ForEach {
Write-Host $_
$proc = Start-Process -FilePath $GitExe -ArgumentList $_ -Wait -NoNewWindow;

if($proc.ExitCode -ne 0){
Write-Error "Git is having errors..."
exit $proc.ExitCode
}
}

这是我得到的构建日志输出:

remote -v add staging ssh://user@MYSERVERIP/path/to/my/repo.git

push -v --progress staging master

Pushing to ssh://user@MYSERVERIP/path/to/my/repo.git

最佳答案

经过数小时的研究,我终于找到了解决方案。

构建代理上实际上有两个 .ssh 目录。如果您直接使用 powershell,它会使用用户目录中的那个。在构建期间,它使用 C:\Program Files\Git.ssh\中的 .ssh 目录

将主机添加到您的known_host 文件,并将它们复制到两个(!)目录。

关于git - TFS Build 在推送到远程代表时挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26279510/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com