1、Jenkins安裝
操作環境:Ubuntu
jenkins針對windows,ubuntu,MacOS平台都提供了安裝包,但是個人覺的還是沒有通用Java包(.war)好用。下載地址:https://jenkins.io/download/ 。啟動方式:
java -jar jenkins.war
啟動成功后,在瀏覽器地址欄中輸入:http://localhost:8080/ 。然后根據提示輸入初始密碼,創建管理員用戶。最后等待插件安裝完畢即可,這個過程比較長,耐心等待,如果出現網絡原因導致安裝失敗,重試即可。


2、Jenkins啟動腳本
jenkins啟動方法:java -jar jenkins.war。jenkins停止方法:查詢jenkins的進程ID,然后kill。重啟則是先停止在啟動,如果停止,啟動次數頻繁的話,這些操作很麻煩。為此下面先編寫啟動腳本,根據傳入的參數執行分別執行啟動,停止,重啟操作。·
[ 1、jenkins啟動腳本 ]:Jenkins.sh
#!/bin/bash
args=$1
jenkinsWarPath="/home/stephen/downLoad"
function isRuning(){
local jenkinsPID=`ps -ef|grep jenkins|grep -v grep|awk '{print $2}'`
if [ -z ${jenkinsPID} ];then
echo "0"
else
echo ${jenkinsPID}
fi
}
#停止jenkins
function stop(){
local runFlag=$(isRuning)
if [ ${runFlag} -eq "0" ];then
echo "Jenkins is already stoped."
else
`kill -9 ${runFlag}`
echo "Stop jenkins sucess."
fi
}
#啟動jenkins
function start(){
local runFlag=$(isRuning)
echo "${runFlag}"
if [ ${runFlag} -eq "0" ];then
`/usr/bin/java -jar ${jenkinsWarPath}/jenkins.war &` > /dev/null
if [ $? -eq 0 ];then
echo "Start jenkins sucess."
exit
else
echo "Start jenkins fail."
fi
else
echo "Jenkins is running row."
fi
}
#重啟jenkins
function restart(){
local runFlag=$(isRuning)
if [ ${runFlag} -eq "0" ];then
echo "Jenkins is already stoped."
exit
else
stop
start
echo "Restart jenkins sucess."
fi
}
#根據輸入的參數執行不同的動作
#參數不能為空
if [ -z ${args} ];then
echo "Arg can not be null."
exit
#參數個數必須為1個
elif [ $# -ne 1 ];then
echo "Only one arg is required:start|stop|restart"
#參數為start時啟動jenkins
elif [ ${args} = "start" ];then
start
#參數為stop時停止jenkins
elif [ ${args} = "stop" ];then
stop
#參數為restart時重啟jenkins
elif [ ${args} = "restart" ];then
restart
else
echo "One of following args is required: start|stop|restart"
exit 0
fi
Jenkins.sh 運行結果:
stephen@stephen-K55VD:~/quikStart$ ./Jenkins.sh start
5265
Jenkins is running row.
stephen@stephen-K55VD:~/quikStart$ ./Jenkins.sh stop
Stop jenkins sucess.
stephen@stephen-K55VD:~/quikStart$ ./Jenkins.sh restart
Jenkins is already stoped.
stephen@stephen-K55VD:~/quikStart$ ./Jenkins.sh start
0
4月 21, 2019 5:46:50 下午 org.eclipse.jetty.util.log.Log initialized
信息: Logging initialized @2698ms to org.eclipse.jetty.util.log.JavaUtilLog
4月 21, 2019 5:46:50 下午 winstone.Logger logInternal
信息: Beginning extraction from war file
3、節點配置
在系統管理-->節點管理下新建節點,配置節點名稱,遠程工作目錄,遠程主機ip以及認證信息,我這里執行的是Python腳本,java相關的無需配置。

4、任務配置
jenkins首頁新建任務,輸入名稱,選擇:構建一個自由風格的軟件項目。在Restrict where this project can be run的label處輸入上一步驟創建的節點名稱並回車。

選擇定時構建,配置時刻表。時刻表共有五個參數,分別表示:分鍾,小時,天,月,星期。 H/02 * * * * 表示每隔兩分鍾執行一次任務。
MINUTE HOUR DOM MONTH DOW
MINUTE Minutes within the hour (0–59)
HOUR The hour of the day (0–23)
DOM The day of the month (1–31)
MONTH The month (1–12)
DOW The day of the week (0–7) where 0 and 7 are Sunday.

build處選擇添加build step -->執行shell:填寫要執行的命令名稱。

BuildTest.sh腳本的作用是從github上拉取測試代碼並執行,內容如下:
#!/bin/bash
buildPath="/home/stephen/buildTest"
if [ -e ${buildPath} ];then
cd ${buildPath}
rm -rf ${buildPath}/*
else
mkdir -p /home/stephen/buildTest
fi
git clone https://github.com/Slience007/pyunitest.git
python3.6 ${buildPath}/pyunitest/run.py
執行已經配置完成的任務:點擊任務名稱,點擊立即構建。任務運行完畢后,點擊console output,運行結果如下:

5、集成HTML測試報告
Jenkins首頁,系統管理-->插件管理頁面安裝插件:HTML Publisher plugin,Groovy,Startup Trigger。插件安裝成功后,編輯已經配置好的任務,Add Build step添加系統級別Groovy腳本。添加如下命令並保存。
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")


Post-build Actions選擇插件HTML Publisher plugin,配置HTML測試報告的路徑,文件名稱和顯示名稱。如下圖所示。

保存上述配置,立即構建任務,點擊測試報告,查看結果:


