我们的构建包含一个本地 shell 命令,它根据启动构建的参数创建一个本地 git 分支。将文件复制到目的地后,目标是将新分支推送到存储库,以便如果将来对该分支有更新,可以将其拉出。在我创建的后期构建和要推送的分支中,两者都以以下错误结束
using GIT_ASKPASS to set credentials PAT (****)
> /usr/bin/git push *GITURL* HEAD:UAT-sprint-20-96 -f # timeout=10
ERROR: Failed to push branch UAT-sprint-20-96 to origin
hudson.plugins.git.GitException: Command "/usr/bin/git push *GIT_URL* HEAD:UAT-sprint-20-96 -f" returned status code 128:
stdout:
stderr:
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:2450)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:2051)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.access$500(CliGitAPIImpl.java:84)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$8.execute(CliGitAPIImpl.java:2536)
at hudson.plugins.git.GitPublisher.perform(GitPublisher.java:316)
at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:804)
at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:753)
at hudson.model.Build$BuildExecution.post2(Build.java:177)
at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:698)
at hudson.model.Run.execute(Run.java:1932)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
at hudson.model.ResourceController.execute(ResourceController.java:97)
at hudson.model.Executor.run(Executor.java:429)
Build step 'Git Publisher' marked build as failure
(GIT_URL 只是为了隐私而替换了实际的 URL)stderr 中没有实际的错误,因此很难弄清楚当它失败时会发生什么。在服务器 CLI 中运行实际命令可以正常工作,询问用户名和密码。此服务器没有实际的公共 IP;它的互联网访问是通过我们公司的网络。我可以克隆存储库的事实表明这不是连接问题,但我可能是错的。我环顾四周,看看是否有人遇到过这个问题,但我发现与管道作业有关(这不是)。我们还尝试使用“运行 shell 脚本”选项推送分支,但它失败了,即使在 URL 中包含用户名和令牌也是如此。有没有人遇到过这个?我们使用 Azure Dev Ops 作为我们的 git。任何见解都会有所帮助。谢谢你。