2015-06-14 9 views
11

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?

+0

Scheint, dass es keine Umgebungsvariable BUILD_REPOSITORY_AUTH_USERNAME mehr gibt. Es ist also eine große Frage, wie man Git autorisieren kann. – Ilya

Antwort

9

Zur Beantwortung der Frage (oder besser der Titel der Frage). Lassen Sie einfach den vNext-Build machen.

enter image description here

Wie in den Kommentaren erwähnt, ist dies für externe git Repositories nicht verfügbar.

+0

Warum wurde das nicht abgestimmt? Sieht gut aus. Ist es falsch? –

+0

Irgendeine Idee, wie Sie eine benutzerdefinierte, in Skript definierte Variable erhalten könnten, wie die Ausgabe von GitVersion? – MytyMyky

+0

Es wurde herausgefunden - Sie können die Build-Nummer mit Logging-Befehlen aktualisieren und dann die obige Strategie verwenden! https://github.com/Microsoft/vso-agent-tasks/issues/375 – MytyMyky

0

ich bin der Beantwortung auf, was ich versuche zu tun (Tag git war einer der wenigen Aufgaben, die ich tun wollte). Es ist jetzt möglich, git-Befehle in Skripten auszuführen. Die Dokumentation ist hier: https://www.visualstudio.com/en-us/docs/build/scripts/git-commands

Hier die Anleitung ist:

Skripte aktivieren

Grant-Versionskontrolle Berechtigungen für den Build Service Git-Befehle auszuführen:

  • Go auf dem Bedienfeld Registerkarte Versionskontrolle ▼
  • On t Wählen Sie auf der Registerkarte Versionskontrolle das Repository aus, in dem Sie Git-Befehle ausführen möchten, und wählen Sie dann den Project Collection-Build-Dienst aus.
  • Erteilen von Berechtigungen für die Git benötigt Befehle, die Sie ausführen möchten.

Normalerweise werden Sie gewähren möchten:

  • Branche Schaffung: Lassen Sie
  • Beitragen: Lassen Sie
  • lesen: Geerbte
  • Tag Schaffung erlauben: Inherited erlauben

Wenn Sie die Berechtigungen gewährt haben, klicken Sie auf Änderungen speichern.

Aktivieren Sie Ihre Builddefinition Git.exe

Auf der Registerkarte Variablen setzen Sie diese Variable auszuführen: system.prefergit zu true

auf der Registerkarte Optionen wählen Sie Zulassen Skripte für den Zugriff auf OAuth-Token.

+0

Auf 'git push Herkunft * ref *' Ich bekomme 'fatal: konnte nicht lesen Benutzername für * URL *: ungültiges Argument', irgendeine Ahnung, was ich tun kann? Muss ich dem TFS-Server Anmeldeinformationen hinzufügen (on Premis)? – Love

Verwandte Themen