Jenkins持續整合(下)-Jenkins部署Asp.Net網站自動釋出

鈦氫硼發表於2020-08-10

環境: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、構建後歸檔:

  

  

  所有變數均用引數化控制,每個不同的任務,直接採用複製其他任務,然後修改引數預設值即可;

   

 

相關文章