I'd like to automatically tag a commit when a build is successful on VSO build vNext. I've read the doc including this page https://msdn.microsoft.com/Library/vs/alm/Build/scripts/variables and I've setup a small PowerShell script. First of all, it seems that BUILD_REPOSITORY_AUTH_USERNAME variable (and its friend password) are empty. I guess they're only available with external gits ? Second of all, it seems that the checkout for build is done via tasks which runs LibGit2Sharp, therefore credentials are not stored in any helper.
This is my PowerShell script :
git tag $Env:BUILD_BUILDNUMBER
git status
git config -l
git push --progress https://$Env:GITUSER:$Env:[email protected]/DefaultCollection/_git/myproject tag $Env:BUILD_BUILDNUMBER
git status
exit
It works well on my machine but on the agent (hosted pool) but it seems to hang on the agent at the push command (after 1h, it got automatically killed by the controller).
Here are the log:
******************************************************************************
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
******************************************************************************
As you can see, no log for the push nor the status command. Any idea on how to achieve this ?
To create a new tag, click the Add button and start typing to add a keyword. Any existing tags that have been added to other work items will begin to display in a dropdown box as you're typing. Figure 1 shows an example of a product backlog item that has been tagged with two tags: Dev and QA.
Azure DevOps supports both annotated and lightweight tags. Lightweight tags are a pointer to specific commit, while annotated tags contain more information such as the tagger, message, and date.
To add a tag to a specific commit, open the History page from Team Explorer. Right click on the commit that you want to assign a tag, and click on Create Tag from the context menu, as shown here: This will open the Commit Details dialog inside the Team Explorer window, with the complete details of the specific commit.
Simply select several records in a list view, right click, select the Edit option, select the Tag (Add) or Tag (Remove) option for the Field* value, type the Tag definition in the Value field, and click the OK button.
I'm answering myself on what I was trying to do (git tag was one of the few tasks I wanted to do). It's now possible to execute git commands in scripts. The documentation is here : https://www.visualstudio.com/en-us/docs/build/scripts/git-commands
Here is the howto:
Enable scripts to run Git commands
Grant version control permissions to the build service:
Typically you'll want to grant:
When you're done granting the permissions, make sure to click Save changes.
Enable your build definition to run Git.exe
On the variables tab set this variable: system.prefergit
to true
On the options tab select Allow scripts to access OAuth token.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With