Tutorial-Diagramm zur Verwendung von Jenkins für die automatisierte Bereitstellung unter Windows

Tutorial-Diagramm zur Verwendung von Jenkins für die automatisierte Bereitstellung unter Windows

Heute werden wir darüber sprechen, wie wir Jenkins+PowerShell-Skripte verwenden, um unsere .NET CORE-Skripte auf dem entsprechenden Server bereitzustellen.

Das von uns hier verwendete Quellcodeverwaltungstool ist TFS. Obwohl der Quellcodemanager relativ alt ist, sind die Prinzipien ähnlich.

1. Installieren Sie Jre. Da unser Jenkins auf Java-Basis entwickelt wurde, müssen Sie zuerst die Java-Laufzeitumgebung auf dem Server installieren.

Der Installationsvorgang ist relativ einfach. Laden Sie JRE von Baidu herunter und installieren Sie es.

Download-Adresse: https://www.java.com/en/download/manual.jsp

2. Laden Sie Jenkins herunter und installieren Sie es. Der Server hier ist Windows, daher ist es am besten, die Windows-Version herunterzuladen. Nach der Installation wird es direkt als Windows-Dienst ausgeführt.

Der Installationsvorgang ist außerdem sehr einfach und es gibt viele Online-Tutorials.

https://jenkins.io/download/

3. Nach der Installation von Jenkins installieren wir bei Bedarf das Berechtigungs-Plugin, um ungenutzte Konten mit nicht genehmigten Berechtigungen zu konfigurieren (dieser Schritt ist optional).

Weitere Einzelheiten finden Sie in diesem Artikel:

https://www.jb51.net/article/161947.htm

4. Der kritischste Schritt ist, wie wir Jenkins verwenden, um unseren Code automatisch bereitzustellen.

Hier gibt es mehrere Punkte. Ich werde den detaillierten Code unten veröffentlichen.

1) Holen Sie sich den neuesten Quellcode in TFS. Hier habe ich den Code nicht über Jenkins erhalten, sondern über den tf-Befehl gezogen.

Der Vorteil hiervon besteht darin, dass ich für alle Jenkins-Aufgaben denselben Quellcode verwenden kann, anstatt für jede Aufgabe eine separate Kopie des Codes abzurufen.

2) Nach dem Abrufen des Codes ist es ganz natürlich, unseren Code über Befehle zu kompilieren. Freunde, die mit .net vertraut sind, sollten wissen, dass es nur wenige Befehle gibt.

3) Nachdem der Code freigegeben wurde, ist es ganz natürlich, ihn auf unsere Site oder unseren Windows-Dienst zu kopieren.

Auch dieser Schritt ist sehr einfach. Sie müssen lediglich die IIS-Site und den Anwendungspool über Befehle stoppen, den Code kopieren, neu starten und die entsprechende Site starten.

Nach einem Satz ist die Arbeit erledigt.

Hier sind einige Screenshots der wichtigsten Schritte:

1. Jenkins erstellt eine Freestyle-Aufgabe

2. Sie müssen nichts weiter auswählen. Solange wir PowerShell-Skripte verwenden, benötigen wir Jenkins, um PowerShell zu unterstützen und Plugins zu installieren.

3. Klicken Sie auf „Speichern“, und Sie sind fertig. Klicken Sie auf „Jetzt erstellen“.

p.s.: Das ausführliche PowerShell-Skript finden Sie weiter unten. Es ist sehr einfach und ich werde hier nicht ins Detail gehen. Sie werden es verstehen, sobald Sie den Code sehen.

Netzstopp Test1Job
C:\Windows\System32\inetsrv\appcmd.exe Site „Test1.test.com“ stoppen
C:\Windows\System32\inetsrv\appcmd.exe Site beenden Test1.api.test.com
C:\Windows\System32\inetsrv\appcmd.exe stop apppool /apppool.name:"test1.test.com"
C:\Windows\System32\inetsrv\appcmd.exe stop apppool /apppool.name:"Test1.api.test.com"
dir "$PSScriptRoot\lib" -Filter "*.ps1" | foreach {
 . $_.vollständigerName
 Write-Host "Importieren Sie $($_.fullName)"
}
#1. Holen Sie sich den Quellcode D:\test\tools\get_tfs.bat
#2. Kompilieren Sie den Quellcode dotnet build D:\test\Source\MTools\Source-Promotion\Test.API.csproj -nowarn:msb3202,nu1503,cs1591 #--no-restore
Echo-API OK
dotnet build D:\test\Source\MTools\Source-Promotion\Test.Web.csproj -nowarn:msb3202,nu1503,cs1591 #--no-restore
echo WEB OK
dotnet build D:\test\Source\MTools\Source-Promotion\Test.Job.WindowsService.csproj -nowarn:msb3202,nu1503,cs1591 #--no-restore -vq
Echo-Job OK
Schlafen 20
#3. CCopy freigeben D:\test\Source\MTools\Test.\Source-Promotion\Test.API\bin\Debug\netcoreapp2.1 D:\Test\Test1\api
Kopiere D:\test\Source\MTools\Test.\Source-Promotion\Test.Web\bin\Debug\netcoreapp2.1 D:\Test\Test1\web
Kopiere D:\test\Source\MTools\Test.\Source-Promotion\Test.Web\wwwroot D:\Test\Test1\web\wwwroot
Kopiere D:\test\Source\MTools\Test.\Source-Promotion\Test.Job.WindowsService\bin\Debug\netcoreapp2.1\win-x64 D:\Test\Test1\job
net start Test1Job
C:\Windows\System32\inetsrv\appcmd.exe Startseite Test1.test.com
C:\Windows\System32\inetsrv\appcmd.exe Startseite Test1.api.test.com
C:\Windows\System32\inetsrv\appcmd.exe starte Apppool /apppool.name:"test1.test.com"
C:\Windows\System32\inetsrv\appcmd.exe starte Apppool /apppool.name:"Test1.api.test.com"
Write-Host „erfolgreich“
Datum abrufen
Funktion CCopy($Ordner_a_Pfad,$Ordner_b_Pfad)
{
 if(!(Testpfad $Ordner_b_Pfad))
 {
 md $Ordner_b_Pfad
 }
 #Alle Dateien im Quellordner durchlaufen $folders_a = gci $folders_a_path -Recurse
 foreach ($Ordner_a in $Ordner_a)
 {
 wenn($folder_a.fullname -like "*appsettings.json*")
 {
 weitermachen
 }
 #Holen Sie sich den vollständigen Pfadnamen der Zieldatei, indem Sie ihn durch $b = $folder_a.fullname.replace($folder_a_path,$folder_b_path) ersetzen. 
 #Beurteilen Sie, ob die Zieldatei vorhanden ist. Wenn sie vorhanden ist, beurteilen Sie zuerst, ob sie neu oder alt ist. Wenn (Testpfad $ b)
 {
  #Beurteilen Sie, ob das Ziel ein Verzeichnis ist. Wenn es ein Verzeichnis ist, überspringen Sie es. Wenn nicht, erstellen Sie ein leeres Verzeichnis der ersten Ebene. Wenn (!((gi $b).PSIsContainer))
  {
  #Beurteilen Sie die Neuheit der Zieldatei und der Quelldatei. Wenn die Änderungszeit der Zieldatei vor der der Quelldatei liegt, kopieren Sie sie erneut und überschreiben Sie sie. Wenn ((gci $b).lastwritetime -lt $folder_a.lastwritetime)
  {
  Kopiere Element $folder_a.fullname $b -force
  }
  }
 }
 #Wenn die Zieldatei nicht existiert, kopieren Sie sie direkt. Andernfalls
 {
  Kopiere Element $folder_a.fullname $b
 }
 }
}

Wenn Sie nach der Fertigstellung eines Bastelsets Anmerkungen oder Vorschläge haben, lassen Sie es uns bitte wissen~

Später werden wir weiter schreiben, um das Programm über PowerShell auf anderen Servern zu veröffentlichen und nach Abschluss der Veröffentlichung die Ergebnisse per E-Mail zu senden

fortgesetzt werden...

Zusammenfassen

Oben finden Sie ein Tutorial zur Verwendung von Jenkins für die automatische Bereitstellung unter Windows. Ich hoffe, es wird Ihnen hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und ich werde Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken!

Das könnte Sie auch interessieren:
  • So installieren Sie Jenkins auf einer Windows-Plattform
  • Detaillierte Erklärung zur Installation von Jenkins unter Windows
  • Detailliertes Tutorial zum Bereitstellen von Jenkins in einer Windows-Umgebung
  • Ändern der Jenkins-Portnummer unter Windows

<<:  Tutorial zur Installation und Kennwortkonfiguration von MySQL 5.7.21

>>:  Implementierung des Vue 3.x-Projekts basierend auf Vite2.x

Artikel empfehlen

MySQL-Unterabfragen und gruppierte Abfragen

Inhaltsverzeichnis Überblick Unterabfragen Untera...

So stellen Sie ein SpringBoot-Projekt mit Dockerfile bereit

1. Erstellen Sie ein SpringBoot-Projekt und packe...

Die neueste Installations- und Konfigurationsmethode für MySQL-5.7.21

1. Entpacken Sie das heruntergeladene MySQL-Kompr...

So erstellen Sie ein Apr-Modul zur Tomcat-Leistungsoptimierung

Vorwort Tomcat ist ein weit verbreiteter Java-Web...

Linux-Fernsteuerungsprogramm für Windows-System (drei Methoden)

Manchmal müssen wir Programme auf dem Windows-Sys...

So stellen Sie mit Node-Red eine Verbindung zur MySQL-Datenbank her

Um Node-red mit der Datenbank (mysql) zu verbinde...

Docker verwendet Dockerfile, um die Node.js-Anwendung zu starten

Schreiben einer Docker-Datei Am Beispiel des von ...

Einführung in den strikten Modus von JavaScript verwenden Sie strikt

Inhaltsverzeichnis 1. Übersicht 1.1 Was ist der s...

Implementierungscode der Front-End-HTML-Skin-Änderungsfunktion

50 Zeilen Code zum Ändern von 5 Hautfarben, einsc...

Detaillierte Beispiele zur Verwendung der Box-Shadow-Eigenschaft in CSS3

CSS enthält viele Attribute. Manche Attribute wer...

Detaillierte Erklärung der Schritte zum Erstellen eines Webservers mit node.js

Vorwort Es ist sehr einfach, einen Server in node...