Für automatisierte Builds mit dem Team Foundation Server benötigt man einen Agent.

Mit dem TFS2015 hat sich das Interface, um einen solchen Agent zu erstellen und zu verwalten, geändert. Um einen Agent anlegen zu können, muss man zuerst einen Pool definieren, der den Agent dann aufnehmen kann:

AgentPool

Zuerst muss man die Binaries und Konfigurationsdateien für den Agent herunterladen. Das kann man direkt aus der Weboberfläche des TFS heraus machen:

DownloadAgentI

Hier erhält man eine Webseite und unter anderem eine kurze Anleitungen, wie man einen Agent installiert und kann das zip-File mit den notwendigen Daten herunterladen.

DownloadAgentII

Als nächsten Schritt verbindet man sich mit Remote Desktop auf den TFS, um dort die weiteren Schritte auszuführen.

Zuerst muss man ein Verzeichnis anlegen, in dem der Agent ausgeführt wird. In dieses Verzeichnis wird der Inhalt des heruntergeladenen ZIP-Files importiert. Das sieht dann in etwa so aus:

AgentDirectory

Nun muss man einen Visual Studio Command Prompt starten, auf dem die nächsten Kommandos ausgeführt werden. der Visual Studio Command Prompt hat den Vorteil, dass alle Pfade und Libraries korrekt erreichbar sind, die man in den nächsten Schritten braucht. Dieser Command Prompt muss als Administrator (evelated rights) gestartet werden, sonst können die Kommandos nicht ausgeführt werden.

Nun muss man in das angelegte Verzeichnis wechseln, das man zuvor angelegt hat. Die in dem Verzeichnis liegenden Kommandos sind PowerShell-Skripts, also muss man als nächstes die PowerShell starten.

Falls der Agent schon installiert war, muss man zunächst .config.cmd remove ausführen. Die weitere Benutzerführung unterscheidet sich nicht vom Installieren, sollte also selbst sprechend sein.

Also startet man nun .config.cmd, um den Agent zu installieren.

Nun muss man den Server-URL eingeben. Hier ist wichtig, dass am Ende KEIN „/“ angefügt werden darf, sonst geht es schief.

Nun kommt der spannende Teil, die Benutzerauthentifizierung. Hier sollte man annehmen, dass man als Domain Admin mit Integrated Security arbeiten kann, aber das scheint nicht der Fall zu sein. Man muss an dieser Stelle PAT verwenden (Personal Access Token). Diesen erhält man ebenfalls auf der Weboberfläche des TFS, und zwar über das persönliche Profil:

ProfilSicherheit

man erhält hier einen Schirm, auf dem man sich einen persönlichen Zugriffstoken (Personal Access Token) generieren kann:

PersonalAccessToken

Dieses Fenster darf man nicht schließen, denn dieser Token wird nirgends gespeichert und ist danach verloren, wenn man ihn nicht kopiert hat. Man kann ihn natürlich auch selbst aufheben. Man kann beliebig viele Token zu jeder Zeit generieren, ein Aufheben macht also wenig Sinn.

Nachdem man nun in unserem Config-Schirm PAT als Authentifizierungsmethode gewählt hat, muss man genau diesen Key einfügen.

Die weiteren Schritte sind mehr oder weniger selbst sprechend. Wir führen die Agents immer als Service aus, das funktioniert aber auch anders gut. Hier noch eine kurze Summary, welche Eingaben ich gemacht habe:

Summary

Nun können Builds definiert werden, die diesen Agent verwenden, einem gelungen Nightly Build steht also nichts mehr im Wege!

Ist doch cool, oder?

LG,
Sabine