環境:Windows 2008 R2、Jenkins2.235.1、Visual Studio 2017;
概要
前面寫過一篇文章,《自動發布-asp.net自動發布、IIS站點自動發布(集成SLB、配置管理、Jenkins)》,這個主要是用於投產環境運維平台自動發布的集成,對於前面的環節使用Jenkins構建包,並發布到測試環境並沒有詳細的說明,現在發文記錄一下。
分成兩篇來寫《Jenkins持續集成(上)-Windows下安裝Jenkins》、《Jenkins持續集成(下)-Jenkins部署Asp.Net網站自動發布》。
正文
一、配置MSBuild與FTP;
1、MSBuild:先在服務器上面安裝Visual Studio 2017或更高版本,也可以單獨安裝MSBuild,不過為了方便調試,最好是直接安裝VS。
然后在Jenkins上面配置,打開“Manage Jenkins”-->“Global Tool Configuration”-->“MSBuild”,指定安裝的MSBuild目錄;

2、FTP:在服務器上面安裝FTP功能,然后在IIS上新建FTP站點(注意點:a、用戶名注意不要用ftp,使用ftpuser這類,使用標准用戶,不使用管理員;b、SSL認證 選擇無;c、FTP身份驗證 選擇基本身份驗證;d、FTP授權規則 選擇指定用戶,如:ftpuser)。
然后在Jenkins上面配置,打開“Manage Jenkins”-->“Configure System”-->“Publish over FTP”,配置主機名,端口默認為21,可以點擊“Test Configuration”進行測試;

二、配置全局參數;
為了快速配置任務,以及統一修改,建議任務構建里面的變量全部采用參數化來控制,涉及到統一的用全局參數來控制,如:SVN地址;
在Jenkins上面配置,打開“Manage Jenkins”-->“Configure System”-->“全局屬性”,勾選“Environment variables”,輸入鍵值,鍵名稱就是參數名;

三、配置Asp.net構建任務
“新建Item“,輸入任務名稱,選擇”流水線“或叫”工作流“任務,
1、指定最大保留歷史構建版本;

2、指定任務自定義的工作空間,不指定則全部默認為系統統一路徑,如果任務數太多並且沒有做集群的情況下,建議把任務的工作空間分散在多個磁盤上,需要注意自定義工作空間的路徑,不要跟系統的安裝路徑一樣,否則可能安裝目錄下面的文件被刪掉。

3、配置SVN分支選擇下拉;


效果如下:

4、配置源代碼路徑:

5、配置MSBuild構建參數:
/t:Rebuild
/p:VisualStudioVersion=15.0
/p:DeployOnBuild=true
/p:LastUsedBuildConfiguration=Debug
/p:LastUsedPlatform="Any CPU"
/p:WebPublishMethod=FileSystem
/p:LaunchSiteAfterPublish=True
/p:ExcludeApp_Data=False
/p:DeleteExistingFiles=True
/p:WPPAllFilesInSingleFolder=${WORKSPACE}\build\build_test1_A_10001
注意:p:WPPAllFilesInSingleFolder,表示把文件生成到指定文件夾,為了后面能夠利用FTP把文件傳過去,這里必須為工作空間下面的路徑,如:D:\JenkinsWorkspaceAB\test1_A_10001_test_OrderProcessAPI\default\default;

6、把文件夾進行壓縮,以便FTP進行傳輸;
7、配置FTP傳輸;

8、解壓文件夾,切換IIS目錄,重啟站點、瀏覽測試頁;
這幾步我是通過自己寫了一個接口給Jenkins去調用實現,好像還有一些現成的工具可以用,不過感覺這個自己寫比較靈活,可以自由定制;

9、構建后歸檔:

所有變量均用參數化控制,每個不同的任務,直接采用復制其他任務,然后修改參數默認值即可;

