windows下使用Jenkins搭建CI持續集成平臺(版本源碼管理使用SVN)

首先從官網http://jenkins-ci.org/下載 Java Web Archive (.war)

例如我保存到 D:\jenkins\jenkins.war

運行Jenkins需要JRE的支持Java5 or later

在命令行下輸入

java -jar D:\jenkins\jenkins.war

即可啓動jenkins。默認會運行在8080端口,正常啓動完成如下圖

wKiom1e9zqzRcSv-AAFWjAOyNII857.jpg-wh_50

我們可以在瀏覽器輸入127.0.0.1:8080來查看,如圖我們的Jenkins已經跑起來了

wKioL1e9zr_yIz8sAACgS7hquCo682.jpg-wh_50

接下來演示如何讓一個SVN的項目和Jenkins關聯起來,如何讓每次上傳都能觸發Jenkins的自動構建,並在構建失敗時通過E-mail發送通知。

假設我們已經有一個名爲TestSVN項目,路徑爲file:///D:/SVNRepository/Test/trunk

內容爲

wKioL1e9ztCSedB8AACJFV8Vxx4325.jpg-wh_50

首先新建一個Job,我們就使用第一項創建一個自由風格的軟件項目

wKiom1e9zuCx-X0eAACFv1JIGrQ718.jpg-wh_50

點擊OK自動跳轉到配置界面,我們需要做一下初始化設置,當然這些配置也可以在後期隨時修改

配置源碼管理工具

在源碼管理這裏我們選擇Subversion(因爲我們使用SVN管理代碼,如果你使用其他版本管理工具比如Git可以從官網上獲得相應的插件)

Repository URL除填入我們的SVN路徑 file:///D:/SVNRepository/Test/trunk

wKioL1e9zvig-XaQAAEis7E5I3Q710.jpg-wh_50

配置構建方法

點擊增加構建步驟,選擇Execute Windows batch command,並輸入

"%VS90COMNTOOLS%..\IDE\devenv.com" "%WORKSPACE%\Test.sln" /Build "Debug|Win32"

wKiom1e9zwfATGX0AABQe-ozJh8617.jpg-wh_50

devenv.comMSVC提供的命令行構建工具。

爲了便於維護也可以將命令寫在批處理文件中,並將文件簽入到代碼管理系統,在這裏寫上批處理文件的路徑,這樣下次修改構建命令就不需要打開Jenkins的頁面進行配置而可以直接修改批處理文件。

另外構建是否成功是由構建後的ERRORLEVEL決定的,非0表示失敗,如果要同時構建多個配置版本比如DebugRelease要注意判斷任一版本失敗時停止構建,保持失敗的ERRORLEVEL

點擊保存,配置就完成了,我們可以點擊立即構建,Jenkins就會從配置好的SVN更新代碼,運行構建命令。在Build History會多出一個條目,如果構建成功會是藍色標記,如果構建失敗會是紅色標記。

wKioL1e9zxWAIqphAAB5m_o69gQ575.jpg-wh_50

自動構建

要做到在每次上傳代碼後自動構建,需要在svn的倉庫配置中加入hook

新建D:\SVNRepository\Test\hooks\post-commit.bat

這個批處理會在每次成功commit之後被自動執行,然後我們複製下剛纔立即構建按鈕的超鏈接,應該是類似下面這樣

http://127.0.0.1:8080/job/Test/build?delay=0sec

其中參數delay=0sec表示立即構建,如果想延遲構建以減輕服務器壓力,可以設置delay=120sec之類的。

現在我們只需要讓批處理訪問這個URL就可以了,可以自己寫一個小工具幫助實現,也可以使用已有的工具比如wget.exe來做這件事,我就使用wget,在批處理中寫上

%~dp0wget.exe -q http://127.0.0.1:8080/job/Test/build?delay=0sec

因爲我把wget.exe放在了和批處理同目錄,所以路徑使用了%~dp0

OK,現在每次成功上傳就會觸發立即構建了。

失敗通知

還差最後一步就是構建失敗時的通知,如果使用E-mail進行通知,需要在Jenkins的項目配置中勾選E-mail Notification,並在Recipients中輸入需要接受通知的E-mail地址

wKiom1e9zySwt0HFAACcUHA5-q0437.jpg-wh_50

此外如果是第一次配置,那麼還要記得在Jenkins的系統管理-系統設置中對SMTP服務器的相關內容進行配置。

wKioL1e9zzTTzlMSAAB_xgGkybI095.jpg-wh_50

官網上還提供了自定義郵件內容的插件,甚至還有發佈twitter的插件

插件:https://wiki.jenkins-ci.org/display/JENKINS/Plugins

補充:編譯多個版本帶自動測試以及崩潰轉儲的構建批處理

REM 將此.bat放在Solution文件同目錄下

REM 替換下面的<SolutionFile>、<EXEPath>、<EXEFile>、<PDBFile>

 

@echo off

 

"%VS90COMNTOOLS%..\IDE\devenv.com" "%~dp0<SolutionFile>.sln" /build "Release|Win32"

IF %ERRORLEVEL% NEQ 0 goto error

"%VS90COMNTOOLS%..\IDE\devenv.com" "%~dp0<SolutionFile>.sln" /build "Debug|Win32"

IF %ERRORLEVEL% NEQ 0 goto error

 

REM AutoTest

echo Testing...

cd /d <EXEPath>

<EXEFile>.exe -AUTO_TEST

IF NOT ERRORLEVEL 0 (

  echo Test broke with Error^(%ERRORLEVEL%^).

  goto dump

)

 

goto success

 

:dump

FOR /F "delims=" %%i IN ('dir *.dmp /b') DO (

  md %%~ni

  echo Dumping to %%~ni

  move %%~ni.* %%~ni

  copy <EXEFile>.exe %%~ni

  copy <PDBFile>.pdb %%~ni

)

:next

goto error

 

:error

echo Error.

exit 1

goto end

 

:success

echo Success.

exit 0

goto end

 

:end

@echo on

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章