轉自:魔のkyo的工做室java
首先從官網http://jenkins-ci.org/下載 Java Web Archive (.war)瀏覽器
例如我保存到 D:\jenkins\jenkins.war服務器
運行Jenkins須要JRE的支持Java5 or latersvn
在命令行下輸入工具
java -jar D:\jenkins\jenkins.warpost
便可啓動jenkins。默認會運行在8080端口,正常啓動完成以下圖測試
咱們能夠在瀏覽器輸入127.0.0.1:8080來查看,如圖咱們的Jenkins已經跑起來了ui
接下來演示如何讓一個SVN的項目和Jenkins關聯起來,如何讓每次上傳都能觸發Jenkins的自動構建,並在構建失敗時經過E-mail發送通知。spa
假設咱們已經有一個名爲Test的SVN項目,路徑爲file:///D:/SVNRepository/Test/trunk插件
內容爲
首先新建一個Job,咱們就使用第一項「建立一個自由風格的軟件項目」
點擊OK自動跳轉到配置界面,咱們須要作一下初始化設置,固然這些配置也能夠在後期隨時修改
配置源碼管理工具
在源碼管理這裏咱們選擇Subversion(由於咱們使用SVN管理代碼,若是你使用其餘版本管理工具好比Git能夠從官網上得到相應的插件)
在Repository URL除填入咱們的SVN路徑 file:///D:/SVNRepository/Test/trunk
配置構建方法
點擊增長構建步驟,選擇Execute Windows batch command,並輸入
"%VS90COMNTOOLS%..\IDE\devenv.com" "%WORKSPACE%\Test.sln" /Build "Debug|Win32"
devenv.com是MSVC提供的命令行構建工具。
爲了便於維護也能夠將命令寫在批處理文件中,並將文件簽入到代碼管理系統,在這裏寫上批處理文件的路徑,這樣下次修改構建命令就不須要打開Jenkins的頁面進行配置而能夠直接修改批處理文件。
另外構建是否成功是由構建後的ERRORLEVEL決定的,非0表示失敗,若是要同時構建多個配置版本好比Debug和Release要注意判斷任一版本失敗時中止構建,保持失敗的ERRORLEVEL。
點擊保存,配置就完成了,咱們能夠點擊當即構建,Jenkins就會從配置好的SVN更新代碼,運行構建命令。在Build History會多出一個條目,若是構建成功會是藍色標記,若是構建失敗會是紅色標記。
自動構建
要作到在每次上傳代碼後自動構建,須要在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地址
此外若是是第一次配置,那麼還要記得在Jenkins的系統管理-系統設置中對SMTP服務器的相關內容進行配置。
官網上還提供了自定義郵件內容的插件,甚至還有發佈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
補充:崩潰時屏蔽崩潰對話框並生成DUMP文件的代碼