流程
一、环境
1.git
yum install git -y
2.jdk
java官网下载jdk8,上传后解压到/usr/local/java下
vim /etc/profile
# 末尾添加
JAVA_HOME=/usr/local/java/jdk1.8.0_121
JRE_HOME=$JAVA_HOME/jre
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib/rt.jar
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASSPATH PATH
source /etc/profile
3.maven
maven官网下载maven,上传后解压到/usr/local/maven下
a.配置maven环境
vim /etc/profile
# 末尾添加
MAVEN_HOME=/usr/local/maven/apache-maven-3.8.2
PATH=$MAVEN_HOME/bin:$PATH
export MAVEN_HOME PATH
source /etc/profile
b.修改setting.xml(镜像和本地仓库)
镜像
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
仓库
4.Jenkins home
vim /etc/profile
export JENKINS_HOME=/usr/local/jenkins
source /etc/profile
二、启动
Jenkins官网下载Jenkins war包
命令启动
java -jar -Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true jenkins.war --httpPort=8888
第一次启动,密码会在控制台打印
或者
cat /root/.jenkins/secrets/initialAdminPassword
输入初始密码后,需要安装插件,采用推荐插件即可
后续可以依据此来删除不必要的插件,例如Gradle(看个人情况)
完成后创建管理员用户
接着一路确认即可
三、配置
1.Manage Plugins
2.Configuration System
a.Jenkins Location
b.Publish over SSH
c.Extended E-mail Notification
3.Configure Global Security
4.Global Tool Configuration
a.Maven setting.xml
b.jdk
c.git
d.maven
四、使用
1.General
2.源码管理
3.构建触发器
4.构建环境
5.构建
6.构建后操作
a.Send build artifacts over SSH
b.Email
五、钩子
去git上添加钩子,url在构建触发器里有说明
附、代码
html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志</title>
</head>
<body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4" offset="0">
<div width="95%" cellpadding="0" cellspacing="0"
style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">
<div>本邮件由系统自动发出,无需回复!
<br />
<br>各位同事,大家好,以下为${PROJECT_NAME }自动化测试项目构建信息
<br />
<div>
<font color="#CC0000">构建结果 - ${BUILD_STATUS}</font>
</div>
</div>
<div>
<h4>
<font color="#0B610B">构建信息</font>
</h4>
<hr size="2" width="100%" />
<ul>
<li>项目名称 : ${PROJECT_NAME}</li>
<li>构建编号 : 第${BUILD_NUMBER}次构建</li>
<li>触发原因: ${CAUSE}</li>
<li>构建状态: ${BUILD_STATUS}</li>
<li>构建日志: <a href="${BUILD_URL}console">${BUILD_URL}console</a>
<li>工作目录 : <a href="${PROJECT_URL}ws">${PROJECT_URL}ws</a></li>
</li>
<li>构建 Url : <a href="${BUILD_URL}">${BUILD_URL}</a>
</li>
<li>项目 Url : <a href="${PROJECT_URL}">${PROJECT_URL}</a>
</li>
</ul>
</div>
<div>
<h4>
<font color="#0B610B">测试报告</font>
</h4>
<hr size="2" width="100%" />
<b>点击查看测试报告: <a href="${PROJECT_URL}ws/report/report.html">${PROJECT_URL}ws/report/report.html</a></b>
</div>
<!-- <div>
<h4>
<font color="#0B610B">测试结果</font>
</h4>
<hr size="2" width="100%" />
<div>
本次测试共执行<b>${TEST_COUNTS}</b>个用例,成功<b style="color: green">${TEST_COUNTS,var="pass"}</b>个,失败<b
style="color: red">${TEST_COUNTS,var="fail"}</b>个,跳过<b
style="color: #FFEB3B">${TEST_COUNTS,var="skip"}</b>个。
</div>
</div> -->
<div>
<h4>
<font color="#0B610B">构建日志 (最后20行):</font>
<hr size="2" width="100%" align="center" />
</h4>
</div>
<div>
<ul>
<li>${BUILD_LOG, maxLines=22}</li>
</ul>
</div>
</div>
</body>
</html>
run.sh
#!/bin/bash
#!/bin/bash
if [ -e ./archive ];then
echo -e "\e[1;42m archive文件夹存在 \e[0m\t"
else
echo -e "\e[1;41m archive文件夹不存在,自动创建 \e[0m\t"
mkdir archive
fi
if [ -e ./*.jar ];then
mv *.jar "`date +%Y-%m-%d`-pipeline.jar"
mv *.jar archive/
fi
source /etc/profile
rm -rf *.out
JAR_PATH='./archive'
JAR_NAME=$(find $JAR_PATH -name '*.jar' -printf '%f\n' | sort -rn | head -1)
echo -e "\e[1;42m 运行jar包为:$JAR_PATH/$JAR_NAME \e[0m\t"
java -jar "$JAR_PATH/$JAR_NAME" &
stop.sh
#!/bin/bash
#每个jar名字不同,需要区分
pid=`ps -ef |grep java|grep pipeline.jar|awk '{print $2}'`
if [ -n "$pid" ]
then
kill -9 $pid
echo -e "\e[1;42m 进程:$pid 已杀死 \e[0m\t"
else
echo -e "\e[1;41m 程序没有运行 \e[0m\t"
fi
rm -rf *.out