TFS-Tutorial: TFS zur Automatisierung von Build, Test und Bereitstellung für .NET-Projekte
Verwenden von Microsoft TFS 2015 Update-3 für .NET (Erstellen, Testen und Bereitstellen): TFS-Tutorial
TFS wird häufiger für die .NET-Entwicklung mit Visual Studio .NET IDE verwendet. Mit TFS 2015 Update 3 kann man mit einem SSH-Schlüssel eine Verbindung zu jedem Team Foundation Server Git-Repo herstellen.Team Foundation Server (TFS) ist ein ALM-Produkt von Microsoft, das die Funktionen für eine End-to-End-Entwicklung und Tests mit Work Item Management, Projektplanung (Wasserfall oder Scrum), Versionskontrolle, Build / Release (Bereitstellung) und Testfunktionen bietet.
HINWEIS: Dieses TFS-Tutorial enthält viele Bilder, damit es ordnungsgemäß geladen werden kann.
Lesen Sie auch => TFS für JAVA-Projekte mit Eclipse in DevOps
Einführung
TFS ist auf Microsoft Visual Studio und Eclipse auf allen Plattformen zugeschnitten, kann jedoch auch als Backend für mehrere IDEs (Integrated Development Environments) verwendet werden.
Wir werden nun einen Blick darauf werfen, wie Team Foundation Server (TFS) zum Erstellen, Testen und Bereitstellen von .NET-Webanwendungen verwendet wird, was traditionell die Stärke des Tools ist.
Voraussetzung:
- Microsoft TFS 2015 Update 3
- Microsoft Visual Studio .NET 2015 (30-Tage-Testversion)
- SonarQube 6.4 oder höher
- IIS-Webserver aktiviert. Da ich eine Windows 7-Box verwende, können Sie in diesem Lernprogramm nachsehen, wie Sie IIS 7 aktivieren. So installieren Sie Internetinformationsdienste (IIS 7) unter Windows 7 Ultimate
- Es gibt mehrere YouTube-Videos zum Aktivieren von IIS unter Windows 2008 / 2012 / 2016.
Um die im Lernprogramm genannten Schritte auszuführen, benötigen Sie normalerweise einen Build-Server, auf dem Builds ausgeführt werden, und Bereitstellungsmaschinen oder -umgebungen, auf denen Anwendungen in IIS bereitgestellt werden, wobei Agenten installiert und ausgeführt werden. Bitte beachten Sie meine früheren Tutorial zu wissen, wie Agenten zu installieren.
Einrichten einer C # -Anwendung
Angenommen, TASK-Arbeitselemente werden in TFS erstellt und dem Entwickler zugewiesen, um daran zu arbeiten. Mir ist immer aufgefallen, dass die Rückverfolgbarkeit sehr wichtig ist, um Arbeiten über den gesamten Software-Lebenszyklus hinweg zu verfolgen.
Stellen Sie vor dem Hinzufügen einer .NET-Anwendung zum TFS-Quellcodeverwaltungs-Repository sicher, ob eine Sammlung und ein Teamprojekt vorhanden sind oder nicht.
Eine Sammlung wird vom TFS-Administrator erstellt. Es besteht aus einer Gruppe von Teamprojekten in einer beliebigen Serviceorganisation, in der Projekte für mehrere Kunden ausgeführt werden. Sie können für jedes Kundenprojekt in TFS individuelle Sammlungen erstellen.
Sobald eine Sammlung erstellt wurde, können Sie mehrere Teamprojekte darin erstellen. Ein einzelnes Teamprojekt besteht aus allen Arbeitselementen, Quellcode, Testartefakten, Metriken für Berichte usw., Team-Projekt kann mit verschiedenen eingebauten Prozessvorlagen wie Scrum, Agile, CMMI etc. erstellt werden.
- Weitere Informationen zum Erstellen von Sammlungen finden Sie unter Verwalten von Teamprojektsammlungen in Team Foundation Server
- Hier verwende ich die Standardsammlung, die nach der Installation von TFS erstellt wird
- Um Teamprojekte innerhalb einer Sammlung zu erstellen, führen Sie die folgenden Schritte aus.
Starten Sie das TFS-Webinterface über die URL http://<ServerName>:port/tfs und Sie können das erstellte Projekt sehen.
Klicken Sie auf das Projekt und Sie gelangen zum Team-Dashboard
(Hinweis: Klicken Sie auf ein Bild für eine vergrößerte Ansicht)
Jetzt haben wir eine Sammlung und ein Teamprojekt erstellt. Starten wir Visual Studio.NET erstellen Sie eine neue C # -Webanwendung und geben Sie das Projekt für das TFS-Quellcodeverwaltungs-Repository frei. Dies ist der erste Schritt zur Etablierung der Continuous Integration (CI) -Praxis.
1) Starten Sie Visual Studio.NET und legen Sie TFS als Standard-Quellcodeverwaltungs-Repository fest. Gehen Sie zu Extras => Optionen => Quellcodeverwaltung. Klicken Sie dann auf OK.
2) Gehen Sie zu View => Team Explorer und stellen Sie über das Symbol eine Verbindung zum TFS-Server her
3) Erstellen Sie einen C # -ASP.NET Web project
4) Da wir eine Webanwendung erstellen, Wählen Sie die Webformularvorlage
Klicken Sie auf OK, um das Projekt zu erstellen.
5) Das erstellte Projekt kann im Projektmappen-Explorer angezeigt werden. .NET verwendet das Konzept von .sln-Datei oder Lösung, um alle Projekte enthalten. Sobald Sie die Lösung öffnen, werden auch alle zugehörigen Projekte geöffnet. Wir müssen die Lösung zum TFS-Quellcodeverwaltungs-Repository hinzufügen
6) Ändern Sie die Standarddatei.aspx wie gezeigt, Speichern Sie es und fügen Sie dann die gesamte Lösung zum TFS-Quellcodeverwaltungs-Repository hinzu
Wählen Sie die Entwurfsansicht und Sie können die gesamte Seite sehen
7) Fügen Sie die Lösung zur TFS-Quellcodeverwaltung hinzu. Klicken Sie mit der rechten Maustaste auf die Lösung und wählen Sie „Lösung zur Quellcodeverwaltung hinzufügen“
8) Wählen Sie das zuvor erstellte Teamprojekt aus und klicken Sie dann auf OK
9) Die Lösung ist noch nicht im TFS eingecheckt. Klicken Sie im Team Explorer auf den Quellcodeverwaltungs-Explorer, und Sie können die hinzugefügte Lösung zum Einchecken sehen.
10) Check-in-Änderungen. Gehen Sie zu Team Explorer => Ausstehende Änderungen
Geben Sie einen Kommentar ein und ziehen Sie ein Arbeitselement per Drag & Drop, um die Rückverfolgbarkeit sicherzustellen. Klicken Sie auf die Schaltfläche Check-in.
11) Um die lokal ausgeführte Website zu testen, klicken Sie auf das Firefox-Symbol in Visuelle Studio.NET . Denken Sie daran, dass es in einer bestimmten Umgebung noch nicht in IIS bereitgestellt wird.
Erstellen einer Build-Definition mit Codeanalyse
Eine Build-Definition besteht aus einer Reihe von Aufgaben, die während eines automatisierten Build-Prozesses ausgeführt werden. Beispiele für die Aufgaben können das Ausführen eines Visual Studio-Builds, eines MS-Builds, das Ausführen von PowerShell- oder Shell-Skripten usw. sein.
1) Um eine Build-Definition zu erstellen, melden Sie sich bei der TFS-Weboberfläche an und wechseln Sie zur Registerkarte Builds. Klicken Sie auf +, um eine Build-Definition zu erstellen. Beginnen Sie mit einer LEEREN Definition und klicken Sie dann auf Weiter.
Wählen Sie das Teamprojekt aus und klicken Sie auf Erstellen
Klicken Sie auf Bearbeiten, das sich neben der leeren Definition befindet
Speichern Sie die Build–Definition als etwas wie „Main Build“
Da Sonarqube für die Codeanalyse verwendet wird, fügen Sie daher die 2 Sonar-Schritte „SonarQube Scanner für MSBuild – Begin Analysis“ und Aufgaben der Analyse.
Fügen Sie den Schritt Begin Analysis vor jedem MS Build oder Visual Studio Build hinzu. In diesem Schritt werden Details vom Sonarqube-Server abgerufen, um die Analyse zu konfigurieren.
Fügen Sie später einen Analyseschritt hinzu.
Die hinzugefügten Schritte sehen wie folgt aus, wobei der MS Build-Schritt dazwischen liegt.
Beginnen Sie, die Details von Sonarqube Server zu definieren. Definieren Sie den Endpunkt, an dem der Sonarqube-Server und die Authentifizierungsdetails hinzugefügt werden. Klicken Sie auf ‚Verwalten‘, um die Sonarqube-Serverdetails hinzuzufügen.
Klicken Sie auf ‚New Service Endpoint => Generic‘
Kehren Sie nun zum Hauptbildschirm für die Build-Definition zurück und wählen Sie den gerade erstellten Endpunkt aus.
Abgeschlossene Konfiguration für die Analyse beginnt, sieht aus wie unten gezeigt
Wählen Sie die Lösung. Geben Sie in den zusätzlichen Einstellungen Advanced => Folgendes ein und speichern Sie die Build-Definition
/d:sonar.scm.aktiviert = wahr / d: Sonar.scm.anbieter = tfvc / d: Sonar.tfvk.benutzername=niranjan /d:sonar.tfvk.Passwort.secured=<Passwort>
SonarQube – End-Analyse. Beenden Sie die Analyse und laden Sie die Ergebnisse in das SonarQube-Projekt hoch.
Fügen Sie einen Schritt hinzu, um Artefakte auf dem Server zu veröffentlichen. Die Artefakte werden in einem Drop-Ordner auf dem Server gespeichert und während der Bereitstellung verwendet.
2) Installieren Sie den Agenten auf dem Build- und Bereitstellungscomputer. In meinem vorherigen Lernprogramm erfahren Sie, wie Sie den Agenten installieren. Angenommen, der Agent ist installiert, stellen Sie sicher, ob der Agent ausgeführt wird oder nicht.
3) Stellen Sie sicher, dass das SonarQube SCM TFVC-Plugin von hier heruntergeladen wurde. und in das Verzeichnis SonarQube installation \extensions\plugins kopiert. Dieses Plugin stellt sicher, dass der Quellcode aus dem TFS-Quellcodeverwaltungs-Repository stammt und SonarQube zur Codeanalyse zur Verfügung gestellt wird.
4) Starten Sie nach dem Herunterladen und Kopieren des Plugins den Sonarserver
5) Initiieren Sie einen Build, um zu überprüfen, ob die Schritte ordnungsgemäß funktionieren. Öffnen Sie die Build-Definition und klicken Sie auf ‚Queue Build‘
Build erfolgreich. Alle Schritte liefen gut.
Klicken Sie auf die Build-Nummer, in diesem Fall Build 217, und wechseln Sie zur Registerkarte Artefakte, um den auf Serverebene erstellten Drop-Ordner anzuzeigen.
Hinweis: Im nächsten Abschnitt zeigt der Freigabeprozess, wie Änderungen während des gesamten Bereitstellungsprozesses berücksichtigt werden können. Stellen Sie dazu sicher, dass die Projektartefakte durch den Kopierschritt in der Builddefinition nach dem Kompilierungsschritt kopiert werden, oder kopieren Sie das Projektartefaktverzeichnis manuell in das Verzeichnis C:Verzeichnis \inetpub\wwwroot. Dies muss nur einmal erfolgen.
Freigabe für die Bereitstellung erstellen
Im vorherigen Abschnitt haben wir über Build gesprochen, gefolgt von der Codeanalyse mit SonarQube. Wir werden nun eine Version erstellen, um die Artefakte aus dem Ordner ‚Drop‘ in IIS bereitzustellen.
Mit der Erstellung von Release erfolgt die gesamte Continuous Integration und Continuous Delivery automatisiert ohne manuelle Eingriffe.
Gehen Sie zum Release Hub und erstellen Sie eine Release-Definition.
Beginnen Sie mit einer leeren Definition und klicken Sie auf OK.
Speichern Sie die Release-Definition und benennen Sie die Standardumgebung in QA um. Basierend auf den Projekten, zusätzliche Umgebungen wie Staging Pre-Prod etc. kann auch hinzugefügt werden und die Bereitstellung würde nacheinander für die gesamten Umgebungen automatisiert.
Verknüpfen Sie die Build-Definition mit der Release-Definition, damit die Bereitstellung automatisiert wird. Klicken Sie auf ‚Link zu einer Build-Definition‘. Wählen Sie die zuvor erstellte Build-Definition aus.
Klicken Sie auf Link
Aktivieren Sie die Bereitstellungsbedingung, um die Bereitstellung unmittelbar nach der Erstellung des Releases zu initiieren
Aktivieren Sie außerdem den Auslöser für die Bereitstellung, nachdem der Build erfolgreich war. Gehen Sie in der Release-Definition zur Registerkarte Trigger und aktivieren Sie ‚Continuous Deployment‘.
Speichern Sie später die Release-Definition.
Fügen Sie auf der Registerkarte Umgebungen der Release-Definition die Aufgaben zum Bereitstellen der Artefakte auf dem IIS-Server hinzu.Fügen Sie eine Aufgabe hinzu, um Dateien aus dem Ordner ‚drop‘, die während des Erstellungsprozesses erstellt wurden, in das IIS wwwrootdirectory zu kopieren.
Quellordner – Durchsuchen und wählen Sie das Webapplication1-Projekt im Drop-Ordner aus
Zielordner sollte das Verzeichnis inetpub\wwwroot – C sein:\inetpub\wwwroot\WebApplication1
Release für Deployment ausführen
Erstellen Sie im Release Hub ein Release zum Starten des Deployments
Wählen Sie den letzten stabilen Build aus und klicken Sie auf Erstellen, um das Deployment zu starten.
Die Bereitstellung in der QA-Umgebung ist erfolgreich
Führen Sie inetmgr aus, den IIS-Manager, mit dem Sie alle in IIS installierten Websites / Anwendungen verwalten können. Navigieren Sie zur bereitgestellten Webanwendung.
Zum Abschluss Sobald Sie den Build initiiert haben, wird die Bereitstellung auch für alle definierten Umgebungen abgeschlossen, da das Release mit der Build-Definition verknüpft ist.
Fazit
In diesem TFS-Tutorial haben wir nun gesehen, wie die Microsoft ALM-Plattform zur Automatisierung von Build, Test und Bereitstellung für .NET-Anwendungen verwendet werden kann. TFS spielt hier eine große Rolle.
Daher ist AUTOMATISIERUNG in der heutigen Welt der Schlüssel für eine erfolgreiche und schnellere Lieferung, um die Nase vorn zu haben.
Letzte Aktualisierung: 18.Februar 2021