環境准備
Windows10操作系統
Git Server確保已安裝
IIS 10確保已安裝
.net core sdk3.1確保已安裝
ASP.NET Core 3.1 Runtime (v3.1.5) - Windows Hosting Bundle Installer確保已安裝
說明:我的項目是基於.net core3.1的,通過IIS 10做代理。所以.net core sdk、IIS、Windows Hosting Bundle Installer都是需要安裝的。
下載
下載地址:https://www.jenkins.io/download/
截止目前最新版:2.235.1

安裝
直接雙擊jenkins.msi文件,采用默認設置,直到完成。但是我將Jenkins安裝在了E盤。

jenkins.msi安裝好之后,會自動打開瀏覽器,並訪問:http://localhost:8080。
注意:如果8080端口已被其它應用占用,可以把占用8080端口的應用停掉;或者修改jenkins.xml文件,使用其它端口。
配置Jenkins插件下載鏡像
等待幾秒,直到安裝目錄發現有hudson.model.UpdateCenter.xml文件。
這個時候到windows服務列表,停止Jenkins服務。
然后打開hudson.model.UpdateCenter.xml文件。
修改鏡像:<url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url>
重新啟動Jenkins服務。
再次打開http://localhost:8080,稍等會跳轉到http://localhost:8080/login?from=%2F頁面。
注意:期間會不斷的去請求這個地址,不用管。據說是因為jenkins的后台訪問了國外的地址,但訪問不了導致的。
解鎖Jenkins
然后會要求你解鎖Jenkins,打開指定文件,復制粘貼進去即可。

安裝Jekins插件
選擇自定義Jenkins,如果選擇推薦插件,不僅要等很久,而且會有很多裝不上。


選擇無,一個插件都不裝。
創建管理員

FullName是登錄后右上角顯示的名字。
實例配置

至此Jenkins第一步算是配置完成。
漢化Jenkins
英語水平好的話,無需漢化。
點擊左側菜單Manage Jenkins,然后點擊右側Manage Plugins。

進去之后,選擇Available。如下圖 :

當出現:Use the search field above to search for available plugins.表示可以在搜索框搜索了。我們輸入:Localization: Chinese (Simplified)。


安裝完之后,地址欄輸入:http://localhost:8080/restart 重新啟動。重啟成功后看到的就是漢化之后的界面了。
如果安裝失敗,可訪問:https://plugins.jenkins.io/,單獨下載。具體看下面:




選擇最新的就行了。
下載下來后,是個localization-zh-cn.hpi文件。
點擊主頁的Manage Plugins,進去后選擇Advance選項卡。將下載的文件上傳上去即可,如下圖:

地址欄輸入:http://localhost:8080/restart 重新啟動。
安裝Git插件
具體步驟和安裝漢化插件一樣。

漫長等待,如果有插件無法安裝,參考上面漢化方式處理。
地址欄輸入:http://localhost:8080/restart 重新啟動。
全局配置

如果Path to Git executable配置為git.exe不行的話,填寫安裝路徑也是可以的。
我的是:C:\Program Files\Git\bin\git.exe
新建任務


使用Freestyle project。目前也就這一個。
源碼管理

此處選擇你的git遠程倉庫地址、賬號密碼、分支
構建觸發器
勾選:Poll SCM,時間設置成:H/2 * * * *
意思是每2分鍾檢查git是否有變化,如果有變化就會重新構建和部署。

構建
選擇使用windows批處理命令:Execute Windows batch command
注意:我們是.net core應用,且部署到windows操作系統。所以不能選擇其它的腳本命令,只能使用windows批處理命令。
而且我們是部署在IIS上的,所以就有了本文開頭環境准備里面的安裝Windows Hosting Bundle Installer。用它來做代理,真正代理到我們的.net core應用。所以在構建之前我們還要做一件事情,在IIS上添加好站點:saas。站點目錄為:D:\subendong\release\saas。也就是我們自動化部署時發布的目錄。且應用程序池為非托管模式。

命令一內容:
C:\Windows\System32\inetsrv\appcmd.exe stop apppool /apppool.name:saas
關閉應用程序池:saas
命令二內容:
e: cd E:\Jenkins\workspace\test\aspnet-core dotnet build dotnet publish -o D:\subendong\release\saas
定位到E盤
定位到aspnet-core目錄,git拉下來的代碼在test目錄下,但是aspnet-core才是解決方案所在目錄。
dotnet命令構建
dotnet命令發布
命令三內容:
C:\Windows\System32\inetsrv\appcmd.exe start apppool /apppool.name:saas
啟動應用程序池:saas
另外,上面三個步驟可以合在一個步驟里面的,具體如下:
e: cd E:\Jenkins\workspace\test\aspnet-core dotnet build C:\Windows\System32\inetsrv\appcmd.exe stop apppool /apppool.name:saas dotnet publish -o D:\subendong\release\saas C:\Windows\System32\inetsrv\appcmd.exe start apppool /apppool.name:saas
至此,大功告成,洗洗睡覺。
參考網址:
jenkins鏡像:https://www.cnblogs.com/zxcnn/p/11703662.html
jenkins安裝插件的兩種方式:https://www.jianshu.com/p/3b5ebe85c034
jenkins之插件下載方法:https://www.cnblogs.com/happyuu-2019/p/11433502.html
jenkins設置中文顯示:https://www.cnblogs.com/jpfss/p/11733664.html
jenkins構建觸發器定時任務Build periodically和Poll SCM【轉載】:https://www.cnblogs.com/caoj/p/7815820.html
Jenkins構建基於.NET Core的web程序:https://www.cnblogs.com/cluyun/p/11286335.html
根據端口號殺死進程:https://www.cnblogs.com/xiaostudy/p/11674053.html
IIS 站點和應用池命令啟動和停止:https://www.cnblogs.com/jmaly/p/9860606.html
