在Visual Studio Online上构建结束时的Git标记(Build vNext,托管池)

时间:2015-06-14 15:30:26

标签: git powershell continuous-integration azure-devops alm

我希望在VSO build vNext上构建成功时自动标记提交。 我已经阅读了包含此页面的文档https://msdn.microsoft.com/Library/vs/alm/Build/scripts/variables,并且我已经设置了一个小型PowerShell脚本。 首先,似乎BUILD_REPOSITORY_AUTH_USERNAME变量(及其朋友密码)为空。我猜他们只适用于外部gits? 其次,似乎检查构建是通过运行LibGit2Sharp的任务完成的,因此凭据不会存储在任何帮助程序中。

这是我的PowerShell脚本:

git tag $Env:BUILD_BUILDNUMBER
git status
git config -l 
git push --progress https://$Env:GITUSER:$Env:GITPASSWORD@myrepo.visualstudio.com/DefaultCollection/_git/myproject tag $Env:BUILD_BUILDNUMBER
git status
exit

它在我的机器上运行良好但在代理程序(托管池)上运行良好,但它似乎在执行命令时挂在代理上(1小时后,它被控制器自动杀死)。

以下是日志:

******************************************************************************
Starting task: Powershell: tools/GitCommands.ps1
******************************************************************************
HEAD detached at 819e778
nothing to commit, working directory clean
core.symlinks=false
core.autocrlf=true
color.diff=auto
color.status=auto
color.branch=auto
color.interactive=true
pack.packsizelimit=2g
help.format=html
http.sslcainfo=/bin/curl-ca-bundle.crt
sendemail.smtpserver=/bin/msmtp.exe
diff.astextplain.textconv=astextplain
rebase.autosquash=true
core.bare=false
core.filemode=false
core.symlinks=false
core.ignorecase=true
core.logallrefupdates=true
core.repositoryformatversion=0
remote.origin.url=https://myrepo.visualstudio.com/DefaultCollection/_git/myproject
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.master.remote=origin
branch.master.merge=refs/heads/master

******************************************************************************
Finishing task: PowerShell
******************************************************************************

如您所见,push和status命令都没有日志。 关于如何实现这个的任何想法?

2 个答案:

答案 0 :(得分:9)

回答问题(或更好的问题标题)。 只需让vNext构建就可以了。

enter image description here

正如评论中所提到的,这不适用于外部git存储库。

答案 1 :(得分:1)

我正在回答自己想要做的事情(git tag是我想做的少数任务之一)。现在可以在脚本中执行git命令。文档在这里: https://www.visualstudio.com/en-us/docs/build/scripts/git-commands

以下是howto:

启用脚本以运行Git命令

授予构建服务的版本控制权限:

  • 转到版本控制控制面板标签▼
  • 在“版本控制”选项卡上,选择要在其中运行Git命令的存储库,然后选择“项目集合构建服务”。
  • 授予您要运行的Git命令所需的权限。

通常,您想要授予:

  • 分支机构创建:允许
  • 贡献:允许
  • 阅读:继承允许
  • 标记创建:继承允许

如果您已完成授予权限,请务必点击保存更改。

启用构建定义以运行Git.exe

在变量选项卡上设置此变量:system.prefergittrue

在选项选项卡上,选择允许脚本访问OAuth令牌。