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:
|
<<: Tutorial zur Installation und Kennwortkonfiguration von MySQL 5.7.21
>>: Implementierung des Vue 3.x-Projekts basierend auf Vite2.x
Problembeschreibung Im Rahmen der Ele.me-Benutzer...
Wenn wir TypeScript verwenden, möchten wir das vo...
Viele Menschen leben heute im Internet und die Suc...
Die Rich-Text-Komponente ist eine sehr häufig ver...
Vorwort Als einer der besten Webserver der Welt l...
Nginx kann die Direktive „limit_req_zone“ des Mod...
Vorwort Letzte Woche fragte mich ein Kollege: „Br...
1. Allgemeine MySQL-Konfiguration Alle folgenden ...
<br />Verwandte Artikel: Web-Kenntnisse: Lös...
Inhaltsverzeichnis 1. Szene laden 2. Knoten suche...
Inhaltsverzeichnis Vorwort analysieren Daten insg...
Dieser Artikel verwendet das Centos7.6-System und...
Ich werde keine weitere Zeit mit Unsinnsgerede ve...
MySQL kann nicht nur über das Netzwerk, sondern a...
my.cnf ist die Konfigurationsdatei, die beim Star...