首页 文章

从Build Pipeline推送到本地Azure DevOps Git

提问于
浏览
1

Short version

有人能告诉我如何在Azure DevOps构建管道中设置“命令行脚本”任务,该管道将更改推送到本地Git存储库(事实上,管道所基于的Git存储库)?

无论我尝试什么,我的脚本总是在打印 Pushing commits to git 后超时 .

Longer version

我们正在将现有的Java / Maven项目从Jenkins构建服务器迁移到Azure DevOps构建环境,我正在尝试设置一个模仿Jenkins“Release Staging”功能的构建管道 .

我的第一次尝试是直接在签出的源上调用Maven发布插件 . 这涉及到几个障碍,其中大部分都是我能够以某种方式克服的:

  • 标准Azure DevOps git环境没有所需的配置值"user.email"和"user.name" set;这可以通过在推送之前在单独的"Command Line Script"任务中调用 git config 来解决 .

  • Azure DevOps检出"detached HEAD state"中的来源 - 为解决此问题,安装脚本任务也调用 git checkout master .

设置完成后,我的Maven调用脚本会运行到释放插件尝试推送到Git的位置;日志文件中的相应行读取

[INFO] Executing: cmd.exe /X /C "git push https://xxx.visualstudio.com/YYY/_git/zzz refs/heads/master:refs/heads/master"
[INFO] Working directory: D:\a\1\s</code>

之后,在超时发生之前没有任何反应(至少没有记录任何内容):

##[error]The operation was canceled.
##[section]Finishing: Maven pom.xml

为了找出导致这个问题的原因,我尝试了一些事情,其中包括:

  • 禁用maven调用并直接从脚本调用 git push

  • 注册"store"类型的Git凭证助手(假设认证问题导致超时),

但没有成功 . 我现在已经没有想法如何让 git push 工作了 - 有谁在这里可以帮助我吗?

P.S . :你可能会说,就Azure DevOps而言,我是一个新手,所以我肯定不知道该系统的所有技巧和功能 . 特别是,我不知道是否有任何东西提供与Maven发布插件相同的功能 . 我们确实使用Azure DevOps包管理,但我们希望为快照和发布版本(Nexus等工具的方式)保留单独的订阅源,因此我们必须有一个机制来自动推进版本号,签出和返回构建包装模块并将其发布到发布订阅源 .

如果有人可以提出另一种方法来实现这一点,我也愿意接受建议 .

1 回答

  • 1

    要将更改推送到Azure DevOps,您应该 integrate your credential in Git repo URL

    • 首先,如果没有,请创建一个PAT .

    • 然后使用以下命令推送:

    git push https://Personal%20Access%20Token:PAT@xxx.visualstudio.com/YYY/_git/zzz master
    

相关问题