Jenkins|简单Job配置|启动脚本|测试报告
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测试报告的路径,文件名称和显示名称。如下图所示。
保存上述配置,立即构建任务,点击测试报告,查看结果: