一、搭建前环境检查:
1.搭建Jenkins前需要先检查本电脑中是否安装有Jdk & tomcat 。
1-1.如何检查系统中是否安装有jdk如下:
在cmd终端输入java-version命令
若已安装会提示jdk目前版本,若未安装则提示信息如下:
1-2.如何检查系统中是否安装有tomcat如下:
在cmd终端输入service.bat install命令
注:本电脑中jdk & tomcat 均未安装,所以从头开始安装。且需注意搭建Jenkins需要注意jdk & tomcat的版本是否对应。若Jenkins与jdk & tomcat版本不对应,即使电脑中已安装了jdk or tomcat也会有很多报错,需要重新安装对应版本。
1-3.如何安装jdk
JDK下载地址:
https://www.oracle.com/java/technologies/downloads/#java11
图1
图2
图3
Jdk下载好之后,双击下载的程序包(不建议改路径,默认C盘好配置)。
一路确定下载就可以了。
1-3-1.jdk环境配置:
在系统变量新建,
变量名输入:JAVA_HOME(全部大写!)
变量值输入:盘符:\jdk安装的路径
然后再新建:
变量名输入:CLASSPATH(这个也是全部大写!!)
变量值输入:.;%JAVA_HOME% \lib(注意是英文格式下:点 分号 百分号JAVA_HOME百分号 反斜杠 lib)千万别写错!
然后选中path编辑:
然后新建输入%JAVA_HOME%\bin(看仔细,千万别多看!!!)
然后上移,确定
至此,配置成功。
返回cmd :输入java --version。
成功!
1-4.如何安装tomcat
1-4-1.Tomcat下载地址:https://tomcat.apache.org/download-10.cgi
在此可以看到Tomcat各个版本所支持的jdk版本,需要对应
将下载好的压缩文件,解压放到指定目录:我放在了C盘根目录。C:\apache-tomcat-10.1.9
1-4-2.配置tomcat环境变量
系统变量→新建→变量名:CATALINA_HOME 变量值:Tomcat的安装路径→确定
系统变量→Path→编辑→新建→输入%CATALINA_HOME%\bin
1-4-3.启动并测试Tomcat
启动Tomcat:在Tomcat安装路径下的bin目录里找到startup.bat,双击运行,保持窗口打开状态
测试Tomcat
打开浏览器,在地址栏输入http://localhost:8080/或http://127.0.0.1:8080/,能看到Tomcat首页即启动成功(若出现闪退现象,请先检查环境变量配置是否正确)
二、搭建Jenkins
2-1.下载Jenkins.war包
下载地址:Jenkins
- 点击download跳转到下载页面,左边的是稳定版,右边的是会每周发布的版本。
- 点击下载左边的war包
- 复制粘贴下载的jenkins.war到tomcat安装路径的webapps目录下即初步配置完成
Jenkins部署在Tomcat服务器下(附http://localhost:8080/jenkins/打不开的解决办法) - 爱码网
2-2..配置Jenkins
Tomcat下C:\apache-tomcat-8.5.89\bin , 点击startup.bat启动Jenkins服务
http://localhost:8080/jenkins/
密码:22e8d13d8e0145b68b3ead4f6f808645
安装插件-->注册第一个管理员用户(邮件最好是发件箱)
创建完账号会跳转到设置URL页面,我们可以先跳过,后面再根据具体需求去更改。
点击下一步,当出现Jenkins is ready! 那恭喜,jenkins配置成功,可以开始使用了。
点击开始使用即可跳转到jenkins首页,开始我们的工作任务了。
记录一些容易踩得坑,以及小Tips。
有时双击startup.bat文件,可能闪退------检查环境变量,确保有正确JAVA_HOME
tomcat默认的端口号是8080,如果8080被占用,也可能造成闪退
首先在doc窗口输入命令netstat -ano|findstr 8080
其次在任务管理器中,找出占用8080的进程
如果进程可以关闭,那么结束该进程
如果进程很重要,不应该结束进程,那么就修改tomcat端口号
修改tomcat端口号:
在tomcat的conf文件夹下用记事本打开server.xml文件
按ctrl+h, 把8080替换成8089(随便一个不被占用的号即可:1000以上能记住的)
保存
以后打开浏览器时,网址就要从http://localhost:8080/ 改成http://localhost:8089
如果tomcat启动Jenkins报404:
很有可能是tomcat版本与Jenkins版本不匹配,试试tomcat8.5
如果tomcat默认启动有乱码:
在tomcat的conf文件夹下用notepad++打开logging.properties文件
把java.util.logging.ConsoleHandler.encoding = UTF-8
改成java.util.logging.ConsoleHandler.encoding = GBK
重新启动tomcat,中文就能正常显示了
如果提示缓存不足
在tomcat的conf文件夹下用notepad++打开content.xml文件
在其中增加一行<Resources cachingAllowed="true" cacheMaxSize="1000000" />
Manage Jenkins页面一些警告信息可以忽略
2-3.Jenkins登录:
Jenkins可以使用tomcat启动,也可以从cmd启动。
Tomcat启动则点击:C:\apache-tomcat-8.5.89\bin\startup.bat
cmd启动可以建一个bat文件:如下:
#Jenkins_Home的目录
set JENKINS_HOME=F:\JenkinsHome
#Jenkins war包所在目录
java -jar -Dfile.encoding=UTF-8 F:\JenkinsHome\jenkins.war
三、Jenkins与GIT集成
3-1.
Token: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
报错参考:http://www.5ityx.com/cate100/332779.html
四、Jenkins构建
4-1.Jenkins配置定时任务:
定时任务:
分钟 小时 一月的天数 月份 一周的天数
0-59 0-23 1-31 1-12 0-7(0和7表示周天)
每天晚上20点自动执行
0 20 * * *
一周1,3,5晚上20点整执行
0 20 * * 1,3,5
每周周一到周五晚上20点整执行
0 20 * * 1-5
一周内每两天,晚上20点整执行
0 20 * * */2
4-2. 配置国内的清华镜像源
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
入口:系统管理-插件管理-高级
4-3.更改Jenkins主目录路径
Jenkins储存所有的数据文件在这个目录下. 你可以通过以下几种方式更改:(我采用第一种)
使用你Web容器的管理工具设置JENKINS_HOME环境参数.
打开tomcat的bin目录,编辑catalina.sh文件。
在# OS specific support. $var must be set to either true or false.上面添加:export JENKINS_HOME=“/var/lib/jenkins”
在引号中填入你的路径。
在启动Web容器之前设置JENKINS_HOME环境变量.
用root用户登录
编辑profile文件:vi /etc/profile
在最后加入:export JENKINS_HOME=xxxx
保存,退出后执行:source /etc/profile
让配置生效
(不推荐)更改Jenkins.war(或者在展开的Web容器)内的web.xml配置文件.
更改Jenkins.war(或者在展开的Web容器)内的web.xml配置文件)
<env-entry>
<env-entry-name>HUDSON_HOME</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value></env-entry-value>
</env-entry>
4-4.jenkins的主目录结构
Jenkins 主目录结构_jenkins jobs目录-优快云博客
4-5.pycharm与git连接
4-6.Jenkins邮件配置和邮件发送
邮件正文 html+css格式例子参考:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>${PROJECT_NAME}-第${BUILD_NUMBER}次构建日志</title>
</head>
<body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4"
offset="0">
<table width="95%" cellpadding="0" cellspacing="0"
style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">
<tr>
<td>(本邮件是程序自动下发的,请勿回复!)<br/></td>
</tr>
<tr>
<td><h2>
<font color="#0000FF">构建结果 - ${BUILD_STATUS}</font>
</h2></td>
</tr>
<tr>
<td><br />
<b><font color="#0B610B">构建信息</font></b>
<hr size="2" width="100%" align="center" /></td>
</tr>
<tr>
<td>
<ul>
<li>项目名称 : ${PROJECT_NAME}</li>
<li>构建编号 : 第${BUILD_NUMBER}次构建</li>
<li>触发原因: ${CAUSE}</li>
<li>构建日志: <a href="${BUILD_URL}console">${BUILD_URL}console</a></li>
<li>构建 Url : <a href="${BUILD_URL}">${BUILD_URL}</a></li>
<li>工作目录 : <a href="${PROJECT_URL}ws">${PROJECT_URL}ws</a></li>
<li>项目 Url : <a href="${PROJECT_URL}">${PROJECT_URL}</a></li>
</ul>
</td>
</tr>
<tr>
<td><b><font color="#0B610B">Changes Since Last Successful Build:</font></b>
<hr size="2" width="100%" align="center" /></td>
</tr>
<tr>
<td>
<ul>
<li>历史变更记录 : <a href="${PROJECT_URL}changes">${PROJECT_URL}changes</a></li>
</ul> ${CHANGES_SINCE_LAST_SUCCESS,reverse=true, format="Changes for Build #%n:<br />%c<br />",showPaths=true,changesFormat="<pre>[%a]<br />%m</pre>",pathFormat=" %p"}
</td>
</tr>
<tr>
<td> <hr size="2" width="100%" align="center" /></td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td><b><font color="#0B610B">构建情况总览:</font></b>${TEST_COUNTS,var="fail"}<br/>
<hr size="2" width="100%" align="center" /></td>
</tr>
<tr>
<td><textarea cols="80" rows="30" readonly="readonly"
style="font-family: Courier New">${BUILD_LOG,maxLines=23}</textarea>
</td>
</tr>
</table>
</body>
</html>
4-7.Jenkins配置allure report
Pending
五、Jenkins pipline构建
5-1.
脚本例子:
pipeline {
agent any
environment {
git_url = 'https://github.com/****/UIAutomation_master.git'
git_credentialsId = '3f42****9-af39***********27-f966094ef446'
}
stages {
stage('Checkout') {
steps {
echo "pull code from GIT"
bat 'cd F:/TestAutomation/test'
}
}
stage('Test') {
steps {
echo "Excute code"
bat 'behave features/test1.feature'
}
post{
always{
allure jdk: 'JDK11', results: [[path: 'allure-results']]
//mail bcc: '', body: 'pipline', cc: 'qiu******1@126.com', from: '1*******3@qq.comqq.com', replyTo: '', subject: 'Jenkins pipline测试邮件', to: 'a******@163.com'
emailext body: 'Jenkins pipline 测试邮件 正文', subject: 'Jenkins pipline 测试邮件', to: 'a*********@163.com'
}
}
}
}
}
If you have any questions, please leave me a message
Thank you for reading
Best Regards,