由於某些歷史問題,最近終於可以從java中解脫出來,繼續耕耘.Net了,第一步就是把之前的java項目翻成.net。之前已經實現過一次,翻起來還是比較快的(當然基礎架構/實體模型已經重新思考並改進),而且測試也在跟進,所以一天要發無數次版本,還要考慮開發環境、測試環境,總發布出錯,甚是心累。於是下決心改善效率,以上為背景。
看了很多文章,最終決定使用Jenkins。以下是我整個配置的記錄:
1. 環境
Platform: .Net4.5
IDE: Visual Studio 2015 & MsBuild
包管理:NuGet
版本控制: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:8080
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!