有人能告诉我如何在Azure DevOps构建管道中设置“命令行脚本”任务,该管道将更改推送到本地 Git存储库(事实上,管道所基于的 Git存储库)?
无论我尝试什么,我的脚本总是在打印Pushing提交到git后超时.
更长的版本
我们正在将现有的Java / Maven项目从Jenkins构建服务器迁移到Azure DevOps构建环境,我正在尝试设置一个模仿Jenkins“Release Staging”功能的构建管道.
我的第一次尝试是直接在签出的源上调用Maven发布插件.这涉及到几个障碍,其中大部分都是我能够以某种方式克服的:
>标准的Azure DevOps git环境没有设置所需的配置值“user.email”和“user.name”;这可以通过在推送之前在单独的“命令行脚本”任务中调用git config来解决.
> Azure DevOps以“分离的HEAD状态”检出源 – 为了解决此问题,安装脚本任务也调用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,
>注册“商店”类型的Git凭证助手(假设认证问题导致超时),
但没有成功.我现在已经没有想法如何让git push调用工作 – 这里有谁可以帮助我吗?
P.S.:你可能会说,就Azure DevOps而言,我是一个新手,所以我肯定不知道该系统的所有技巧和功能.特别是,我不知道是否有任何东西提供与Maven发布插件相同的功能.我们确实使用Azure DevOps包管理,但我们希望为快照和发布版本(Nexus等工具的方式)保留单独的订阅源,因此我们必须有一个机制来自动推进版本号,签出和返回构建包装模块并将其发布到发布订阅源.
如果有人可以提出另一种方法来实现这一点,我也愿意接受建议.
要将更改推送到Azure DevOps,您应该将您的凭据集成到Git repo URL中:>首先,如果没有,请创建一个PAT.
>然后使用以下命令推送:
git push https://Personal%20Access%20Token:PAT@xxx.visualstudio.com/YYY/_git/zzz master