würde Ich mag automatisch zu markieren, ein begehen, wenn ein Build erfolgreich auf VSO ist vNext bauen. Ich habe das Dokument einschließlich dieser Seite https://msdn.microsoft.com/Library/vs/alm/Build/scripts/variables gelesen und ich habe ein kleines PowerShell-Skript eingerichtet. Zunächst scheint die Variable BUILD_REPOSITORY_AUTH_USERNAME (und ihr Freundpasswort) leer zu sein. Ich denke, dass sie nur mit externen Gittern verfügbar sind? Zweitens scheint es, dass das Auschecken für Build über Tasks ausgeführt wird, die LibGit2Sharp ausführt, daher werden die Anmeldeinformationen nicht in einem Helper gespeichert.Git-Tag am Ende der Build auf Visual Studio Online (Build vNext, gehostete Pool)
Das ist mein Powershell-Skript ist:
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
Es funktioniert gut auf meinem Rechner, sondern auf dem Agenten (hosted Pool), aber es scheint auf den Agenten auf dem Push-Befehl (nach 1 h zu hängen, wird es automatisch vom Controller getötet).
sind hier das Protokoll:
******************************************************************************
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
******************************************************************************
Wie Sie sehen können, kein Protokoll für den Push noch den Statusbefehl. Irgendeine Idee, wie man das erreicht?
Scheint, dass es keine Umgebungsvariable BUILD_REPOSITORY_AUTH_USERNAME mehr gibt. Es ist also eine große Frage, wie man Git autorisieren kann. – Ilya