docker-compose.yml
version: '2'
services:
jenkins:
container_name: jenkins
image: jenkinsci/blueocean
restart: always
user: root
ports:
- 8080:8080
- 50000:50000
volumes:
- /var/jenkins_home:/var/jenkins_home
- /var/run/docker.sock:/var/run/docker.sock
docker.sock是将宿主机的docker指令挂载 可以在本容器中调用本地docker镜像/容器
html-publisher未加载css使用groovy script插件:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")
shell中判断/循环语句需要写在一行
if [ $(grep -c "_FailedTest" ../../shuangshi/Result/result.html) -ne 0 ]; then exit 1; else exit 0; fi
进入docker后执行的脚本也需要写在一行
docker exec sakura bash -c 'cd /var/jenkins_home/shuangshi;git pull;python run.py;'
email html模版(插件是Extended E-mail Notification)
<!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">
<h3>以下是Jenkins自动发送的邮件,请勿回复!</h3>
<div>
<table width="95%" cellpadding="0" cellspacing="0"
style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">
<tr>
<th><br />
<h2>构建信息</h2>
</th>
</tr>
<tr>
<td>
<ul>
<li>项目名称 : ${PROJECT_NAME}</li><br />
<li>美化的测试报告 : <a href="${PROJECT_URL}HTML_20Report">${PROJECT_URL}HTML_20Report</a></li><br />
<li>触发原因: ${CAUSE}</li><br />
<li>项目 Url : <a href="${PROJECT_URL}">${PROJECT_URL}</a></li><br />
</ul>
</td>
</tr>
</table>
<div>${FILE,path="../../shuangshi/Result/result.html"}</div>
</div>
</body>
</html>
advanced中的trigger中的advance可以分别编辑成功时发送的脚本/失败的脚本
Jenkins状态是根据shell脚本中输出是否为0判断该次构建为成功的
Extended E-mail Notification配置(ali)
SMTP:smtpdm.aliyun.com
25nossl 465ssl
password为授权码
网友评论