.Net持續集成 —— Jenkins+Git+WebDeploy

  因爲某些歷史問題,最近終於能夠從java中解脫出來,繼續耕耘.Net了,第一步就是把以前的java項目翻成.net。以前已經實現過一次,翻起來仍是比較快的(固然基礎架構/實體模型已經從新思考並改進),並且測試也在跟進,因此一天要發無數次版本,還要考慮開發環境、測試環境,總髮布出錯,甚是心累。因而下決心改善效率,以上爲背景。html

  看了不少文章,最終決定使用Jenkins。如下是我整個配置的記錄:java

1. 環境

  Platform: .Net4.5git

  IDE: Visual Studio 2015 & MsBuildweb

  包管理:NuGetwindows

  版本控制:TFS-git服務器

  服務器: windows 2012 R2(IIS8)架構

  其餘: webdeploy工具

  參考文章:http://blog.couchbase.com/2016/january/continuous-deployment-with-jenkins-and-.net測試

  

2. 軟件下載與安裝

 Jenkins:

  在https://jenkins.io/index.html 下載windows版本,按照步驟安裝,安裝好以後,jenkins管理地址默認爲 http://localhost:8080ui

 IIS:

  除了安裝IIS必要的功能,注意勾選 web服務器->管理工具 中 除"IIS6 管理兼容性"的功能

 WebDeploy:

  下載地址 http://www.iis.net/downloads/microsoft/web-deploy ,注意必定要勾選 IIS Deployment Handler ,不然使用PublishProfile時會報404錯誤

  安裝好以後,你的IIS服務器會多出來 Management Service,點進去,修改配置

 Git客戶端:

  這個就很少說了,不少地方都有

 MsBuild:

  地址 https://www.microsoft.com/en-us/download/details.aspx?id=48159 。這裏安裝的只是精簡版的MsBuild,若是有VS的全量版那是最好不過,後面build的時候就知道有多坑了==!

  若是隻裝這個MsBuild,要將你開發機器上的 MsBuild\Microsoft\VisualStudio 文件夾拷貝到服務器上相應的文件夾,不然編譯MVC項目時會報錯(Target找不到)

 Microsoft SDK:

  一樣是build時候用到(error : Can't find the valid AspnetMergePath),你能夠安裝或者直接拷貝,把文件夾C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A 拷貝到目標服務器相應目錄

3. 配置

 Jenkins配置:

  1> 安裝Git plugin, Multi SCMs 和 MsBuild plugin (在參考文章中有詳細說明)

    步驟:a) 打開jenkins http://localhost:8080

       b) 找到Manage Jenkins->Manage Plugins->可選插件

       c) 搜索插件並安裝

      配置:以下圖

      

    注意配置 Git plugin 中的 Global Config user.name和user.email

 2> 項目配置

    我這裏就直接貼出來了,也比較簡單

    

 

 

    說明:MsBuild配置中有額外選項,這裏貼出來,/p:DeployOnBuild=true;PublishProfile=backend /p:Configuration=Release /p:AspnetMergePath="C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools"

     PublishProfile就是VS中指定的發佈配置名稱,後面的AspnetMergePath用於解決上面MsTools的報錯

  注意:1. 你配置的路徑最好不要過深,微軟限制了路徑最大長度266,到時候會悲劇的==!

            2. 若是Git認證憑據填寫在URL中,用戶名/密碼不能夠包含特殊字符,不然會被encode致使拉取失敗。建議不要配置在URL中,本文這樣配置是由於GIT服務器爲TFS,不支持Credential

 3> VS PublishProfile配置

  VS項目中新建配置文件,選擇Web Deploy,而後指定Server/Site name/User name/Password/Destation URL ,配好以後點擊一下Validate Connection,經過就成功啦!

      

  配置保存以後,打開相應的pubxml文件,加上如下這兩行:

  <Password>your password</Password>
  <AllowUntrustedCertificate>True</AllowUntrustedCertificate>

 

4 Try it!

  好了,到這裏一個.Net MVC項目自動構建就基本弄好了,進入jenkins,找到剛纔配置的項目,點擊 當即構建。

  構建會按照 git拉取->nuget 還原->build-> deploy->send email這個順序執行,點擊Console output能夠看到詳細的執行過程,很長我就不貼出來了。有時間再寫一下 windows 服務的自動構建。

 

 

  如今部署仍是很爽的,一鍵完成,No Errors!

相關文章
相關標籤/搜索