1. 程式人生 > >使用Jenkins搭建持續整合(CI)環境(實現自動構建)(轉載)

使用Jenkins搭建持續整合(CI)環境(實現自動構建)(轉載)

轉載地址:http://www.cnitblog.com/luckydmz/archive/2012/01/03/77007.htmlhttp://www.cnitblog.com/luckydmz/archive/2012/01/03/77007.html

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

執行Jenkins需要JRE的支援Java5 or later

在命令列下輸入

java -jar D:\jenkins\jenkins.war

即可啟動jenkins。預設會執行在8080埠,正常啟動完成如下圖

Screenshot0 

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

Screenshot1

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

內容為

Screenshot6

首先新建一個Job,我們就使用第一項“建立一個自由風格的軟體專案”

Screenshot2

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

配置原始碼管理工具

在原始碼管理這裡我們選擇Subversion(因為我們使用SVN管理程式碼,如果你使用其他版本管理工具比如Git可以從官網上獲得相應的外掛)

Screenshot3

配置構建方法

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

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

Screenshot7

devenv.com是MSVC提供的命令列構建工具。

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

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

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

Screenshot5

自動構建

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

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

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

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

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

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

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

失敗通知

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

Screenshot4

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

Screenshot9

官網上還提供了自定義郵件內容的外掛,甚至還有釋出twitter的外掛

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

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

相關推薦

使用Jenkins搭建持續整合(CI)環境實現自動構建轉載

轉載地址:http://www.cnitblog.com/luckydmz/archive/2012/01/03/77007.htmlhttp://www.cnitblog.com/luckydmz/archive/2012/01/03/77007.html 例如我

使用Jenkins搭建持續整合(CI)環境

例如我儲存到 D:\jenkins\jenkins.war 執行Jenkins需要JRE的支援Java5 or later 在命令列下輸入 java -jar D:\jenkins\jenkins.war 即可啟動jenkins。預設會執行在8080埠,正常啟動完成如下圖   我們可以在瀏覽器輸入127.

利用Jenkins+Gitlab搭建持續整合(CI)環境

這次實習的任務之一就是搭建一個持續整合(Continuous Integration)環境。 我們選擇Jenkins作為持續整合工具,其優點是提供web GUI配置介面,方便配置,還可以安裝很多第三方外掛(plugin)進行定製與擴充套件,功能強大。 其次選擇Gitlab作為git server。Gitla

MSBuild和Jenkins搭建持續整合環境1

你或其他人剛剛寫完了一段程式碼,提交到專案的版本倉庫裡面。但等一下,如果新提交的程式碼把構建搞壞了怎麼辦?萬一出現編譯錯誤,或者有的測試失敗了,或者程式碼不符合質量標準所要求的底限,你該怎麼辦? 最不靠譜的解決方案就是寄希望於所有人都是精英,他們根本不會犯這些

【K8S】基於Docker+K8S+GitLab/SVN+Jenkins+Harbor搭建持續整合交付環境環境搭建

## 寫在前面 > 最近在 K8S 1.18.2 版本的叢集上搭建DevOps環境,期間遇到了各種坑。目前,搭建環境的過程中出現的各種坑均已被填平,特此記錄,並分享給大家! ## 伺服器規劃 | IP | 主機名 | 節點 | 作業系統 | |

Jenkins+Docker搭建持續整合測試環境

https://sanwen8.cn/p/22e2dDy.html 關於Jenkins Jenkins是被廣泛應用的持續整合、自動化測試、持續部署的框架,甚至有些專案組順便將其用來做流程管理的工具。根據任務的多寡,Jenkins通常有兩種典型的部署方式。 單節點(Ma

Python Web專案中使用Jenkins進行持續整合CI

轉載原文:http://www.hustlzp.com/post/2014/08/jenkins 在一個專案的開發過程中,往往會有一些需要反覆執行的操作,比如編譯、測試、部署。具體於Flask專案,我一般使用nose執行單元測試、fabric進行部署、pylint執行程式碼質量檢測等。這些頻繁需要執行

使用Jenkins搭建持續整合服務

1. 什麼是持續整合 持續整合 (Continuous Integration, 簡稱 CI) 是軟體工程中的一種實踐, 用於將開發人員不同階段的工作成果整合起來, 通常一天之中會進行多次. 持續整合最初在 極限程式設計 (Extreme Programming) 中提出

Jenkins+RF持續整合測試 環境搭建

通常在自動化測試中,我們需要對自動化測試用例定時構建,並生成報告並通過郵件發給指定的人。最佳工具選擇莫過於Jenkins了。通過Jenkins整合robot framework外掛,我們能非常方便的定時從git/svn上拉取最新的自動化測試用例,然後執行用例並把最終結果以測試報告的形式發給指定的人群。 下面

Docker+Jenkins持續整合環境1使用Docker搭建Jenkins+Docker持續整合環境

來源:https://www.cnblogs.com/xiaoqi/p/docker-jenkins-cicd.html 本文介紹如何通過Jenkins的docker映象從零開始構建一個基於docker映象的持續整合環境,包含自動化構建、釋出到倉庫\並部署上線。 0. 前置條件 伺服器安

CI持續整合系統環境--Gitlab+Gerrit+Jenkins完整對接

原文地址https://www.cnblogs.com/kevingrace/p/5651447.html 近年來,由於開源專案、社群的活躍熱度大增,進而引來持續整合(CI)系統的誕生,也越發的聽到更多的人在說協同開發、敏捷開發、迭代開發、持續整合和單元測試這些拉風的術語。然而,大都是僅僅聽到在說而已,國內

Docker+Jenkins+Maven+SVN搭建持續整合環境

Docker+Jenkins+Maven+SVN搭建持續整合環境 環境拓撲圖(實驗專案使用PHP環境) 釋出流程圖 環境說明 系統:Centos 7.4 x64 Docker版本:18.09.0 Maven版本:3.6 Tomcat版本:8 JDK版本:1.8

Jenkins+Sonar搭建持續整合和程式碼質量檢查環境

Jenkins+Sonar搭建 一、相關環境及下載地址 二、軟體安裝 Jenkins安裝 命令:dpkg –i jenkins_2.121.3_all.deb 若有報錯,執行# apt-get update 和# apt-get –f install, # ln -s /opt/jdk1.8.0_131/b

搭建持續整合環境之——jenkins部署、安裝、配置

一、部署準備 1.遠端伺服器一臺:要求已安裝linux作業系統、tomcat、jdk; 2.從網上下載的jenkins.war包,推薦下載地址:http://Jenkins-ci.org/,或http://mirrors.jenkins.io/war-stable/ 二

搭建持續整合介面測試平臺Jenkins+Ant+Jmeter

1 Started by user anonymous 2 Building in workspace D:\B_TOOLS\jenkins\jobs\TestJenkins\workspace 3 [demo] $ cmd.exe /C '"ant.bat -file build3.xml run

基於Jenkins快速搭建持續整合環境

看了園友張善友的博文,嘗試成功.便有此作.原網址:http://www.cnblogs.com/shanyou/p/3750714.html   天下事有難易乎?為之,則難者亦易矣;不為,則易者亦難矣. 首先要學會使用MSBuild構建指令碼 附

Jenkins+Maven+SVN快速搭建持續整合環境

Jenkins是一個可擴充套件的持續整合引擎,Jenkins非常易於安裝和配置,簡單易用,下面看看我們是如何幾分鐘就快速搭建一個持續整合環境吧。 假設我們目前已經有2個maven專案:entities(Java類庫),web(Web應用,依賴entities)。 一、安裝Jenkins 把Je

【第1139期】基於Gitlab CI搭建持續整合環境

前言本文是在12月12號迅雷@趙兵在前端早讀課第三期Live中提到的關於CI構建的,可能這部分在

Jenkins學習總結3——Jenkins+Maven+Git搭建持續整合和自動化部署的

前言     持續整合這個概念已經成為軟體開發的主流,可以更頻繁的進行測試,儘早發現問題並提示。自動化部署就更不用說了,可以加快部署速度,並可以有效減少人為操作的失誤。之前一直沒有把這個做起來,最近的新專案正好有機會,費了一番功夫總算搞好了,特此記錄。 1. 開發環

基於 Jenkins 快速搭建持續整合環境

隨著軟體開發複雜度的不斷提高,團隊開發成員間如何更好地協同工作以確保軟體開發的質量已經慢慢成為開發過程中不可迴避的問題。尤其是近些年來,敏捷(Agile) 在軟體工程領域越來越紅火,如何能再不斷變化的需求中快速適應和保證軟體的質量也顯得尤其的重要。 持續整合正是針對這一類問題的一種軟體開發實踐。它倡