發表文章

目前顯示的是 十一月, 2015的文章

Jenkins 3 –部署問題排除

圖片
文章開始前先列一下,目前方案下的專案及組態
n個Library專案及2個Web專案。組態區份為: Debug、 Release、QAS、STA、PRD。前兩個是Vs預設,後面3個是根據發佈的環境命名 遇到的問題
     前一篇文章介紹的發行,使用的是MsBuild來建置方案檔.sln。透過發行Profile檔,先建置後再作發行。 這樣的方式,在建置方案後,預設會找出方案下所有的Web專案來發行。依照上述方案架構與組態,會遇幾個問題如下:
第一個Web專案發行後,第2個Web專案會找不到發行Profile檔。ps:我只想發行一個Web專案,第二個專案沒有發行Profile。若建置改成使用特定的專案,例如:只建置A Web。這在建置時,會遇到非預設組態(QAS、STA、PRD),找不到的錯誤,因為其他相依的Library專案,並沒有這些設定,在VS加入時,預設建置設定只加入當時選擇的專案及方案,如下圖 WebApp有QAS,但底下的Library沒有。

Jenkins 2 -基本建置與部署

圖片
前一篇將環境搞定後,開始來作建置與部署的工作。

新增建置工作加入一個建置工作



設定工作組態-指定原始檔管理
User Name /Password 需使用前VSO 的Secondary User Name



設定工作組態-加入建置

加入執行Windows批次指令,執行nuget.exe還原
ps:nuget.exe 已先下載至安裝目錄。

%JENKINS_HOME% : 安裝目錄C:\Program Files (x86)\Jenkins
"%WORKSPACE%   : 工作位置 例:C:\Program Files (x86)\Jenkins\workspace\My-VSO-Daily-Buildps

完整命令

cd %JENKINS_HOME%
nuget.exe restore "%WORKSPACE%\BuildLab.sln"

加入Build a Visual Studio project or solution using MSBuild
使用MsBuild建置成功後,透過發行檔Profile,發行到主機上


完整命令:/t:Rebuild /property:PublishProfile=WebDeploy;DeployOnBuild=true;username=xxx;password=xxxx;AllowUntrustedCertificate=true 測試建置 設定完後,選單左方可以執行[馬上建置],並在Console看到即時的輸出結果


參考來源http://ithelp.ithome.com.tw/question/10109773
http://www.codeproject.com/Articles/878203/Integrate-Jenkins-with-MSBuild-and-NuGet
http://www.dotblogs.com.tw/supershowwei/category/11733.aspx?Show=All

Jenkins 1 - 基本環境設定

圖片
前兩天去MOPCON 2015上課,談到CI Server,大部份都使用Jenkins。這兩天玩了一下,順便將目前的專案導入,將放在VSO的原始檔,作自動化建置及部署。關於Jenkins 網路有很多文章,這裡不作多介紹,本篇只針對目前用到的功能、設定及問題排除作記錄。

建置環境Window Server 2012 R2 Visual Studio 2015 : 建置、編譯、部署,此部份雖可以個別安裝,但實測後,遇到不少問題,所以乾脆將開發工具裝上。 版本控制 : Visual Studio Online Jenkins : https://jenkins-ci.org/ 下載Window版本,裝完後,預設會執行port 8080首頁 管理外掛程式

加入MSBuild Plugin

加入Team Foundation Server Plug-in

工作排程器將參數傳給PowerShell

圖片
測試機上的工作排程,會定期去執行一支PowerShell的命令檔,目前有一需求,要從排程上,將參數傳給PowerShell去使用。相關作法如下在power shell 先宣告一個變數,本例將變數先顯示出來
param($url="")
$url
測試Power Shell傳入參數,進入命令提示字元,切換到Power Shell目錄 C:\Windows\System32\WindowsPowerShell\v1.0
透過-command將參數指給url : powershell.exe –command “d:\par.ps1 –url kim”

測試結果輸出:kim
將參數加到排程上
參考來源https://dmitrysotnikov.wordpress.com/2011/02/03/how-to-schedule-a-powershell-script/

使用IIS作為Proxy轉向Jenkins

圖片
在Window主機上裝了Jenkins,預設port 8080,而DNS指定的port與防火牆只有開放80,若想讓Jenkins在外部也可以連的話,IIS有相關套件可以將domain name rewrite到指定的url 例:jenkins.kimx.info 轉往 localhost:8080

必要安裝URL Rewrite Application Request Routing 這2個套件可以透過Web Plaform Installer安裝

隱藏Public Method沒有註解的警告

圖片
專案若將匯出XML的功能打開Public 方法若沒有註解,會出現警告。雖然不會影響功能,但看到程式碼有個綠色毛毛虫在那兒,總覺得心裡怪怪的...