今天我們來說一下,如何使用Jenkins+powershell腳本,將我們的.NET CORE的腳本部署到對應的服務器上.
這里我們使用的源碼管理工具是TFS.雖然源碼管理器比較老舊,但是原理都差不多.
1.安裝Jre,因為我們的Jenkins是基于java開發的,所以需要先在服務器上安裝java的運行時環境
這個安裝過程比較簡單,百度下載JRE,然后安裝,暫且不表.
下載地址:https://www.java.com/en/download/manual.jsp
2.下載并安裝Jenkins,這里服務器是Windows的,所以最好下載Windows版本的,安裝好以后直接就以Windows服務的形式運行了.
這個安裝過程也是非常的簡單,網上教程很多.
https://jenkins.io/download/
3.安裝好Jenkins以后,根據需要我們安裝權限插件,給不用的賬號配置不通過的權限,(此步驟可選)
具體可參看此文章,說的很詳細:
https://www.jb51.net/article/161947.htm
4.最關鍵的一步來了,就是如何使用Jenkins來自動部署我們的代碼.
這里主要分以下幾個小點,下面我會貼出詳細的代碼.
1)獲取TFS中的最新源碼,這里我并沒有通過Jenkins去獲取代碼,而是通過tf命令去拉取代碼的.
這樣的好處就是,所有的Jenkins任務的源代碼,我都可以使用同一份,而不用每個任務單獨去拉取一份代碼.
2)拉取到代碼以后,自然就是通過命令來編譯我們的代碼,熟悉.net的朋友們應該都知道,無非就那幾個命令了
3)代碼發布出來以后,自然就是要將代碼copy到我們的站點或者Windows服務下面去.
這一步也很簡單,無非就是通過命令停止iis站點和應用程序池;copy代碼;重啟啟動對應的站點即可
一套下來,打完收工.
下面貼出幾個關鍵步驟的截圖:
1.Jenkins創建自由風格的任務
2.其他什么都可以不選,只要我們使用powershell腳本,需要Jenkins支持powershell也需要安裝插件
3.點擊保存,一套搞定.點擊build now即可
ps:下面給出詳細的powershell腳本,非常簡單這里就不詳述了,大家一看代碼就明白了
net stop Test1JobC:/Windows/System32/inetsrv/appcmd.exe stop site Test1.test.comC:/Windows/System32/inetsrv/appcmd.exe stop site Test1.api.test.comC:/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 { . $_.fullName Write-Host "Import $($_.fullName)"}#1.獲取源碼D:/test/tools/get_tfs.bat#2.編譯源碼dotnet build D:/test/Source/MTools/Source-Promotion/Test.API.csproj -nowarn:msb3202,nu1503,cs1591 #--no-restoreecho API OKdotnet build D:/test/Source/MTools/Source-Promotion/Test.Web.csproj -nowarn:msb3202,nu1503,cs1591 #--no-restoreecho WEB OKdotnet build D:/test/Source/MTools/Source-Promotion/Test.Job.WindowsService.csproj -nowarn:msb3202,nu1503,cs1591 #--no-restore -v qecho job OKSleep 20#3.發布CCopy D:/test/Source/MTools/Test./Source-Promotion/Test.API/bin/Debug/netcoreapp2.1 D:/Test/Test1/apiCCopy D:/test/Source/MTools/Test./Source-Promotion/Test.Web/bin/Debug/netcoreapp2.1 D:/Test/Test1/webCCopy D:/test/Source/MTools/Test./Source-Promotion/Test.Web/wwwroot D:/Test/Test1/web/wwwrootCCopy D:/test/Source/MTools/Test./Source-Promotion/Test.Job.WindowsService/bin/Debug/netcoreapp2.1/win-x64 D:/Test/Test1/jobnet start Test1JobC:/Windows/System32/inetsrv/appcmd.exe start site Test1.test.comC:/Windows/System32/inetsrv/appcmd.exe start site Test1.api.test.comC:/Windows/System32/inetsrv/appcmd.exe start apppool /apppool.name:"test1.test.com"C:/Windows/System32/inetsrv/appcmd.exe start apppool /apppool.name:"Test1.api.test.com"Write-Host "success"Get-Date
新聞熱點
疑難解答