jenkins - Jenkins 邮件发送远程服务器黄瓜报告
问题描述
我有一个要求让我解释一下场景,
- 他们是 COMPUTER-A (Jenkins Server),我们通过它触发了管道构建
- 第一步,它将在 vlab 机器中创建 VM(COMPUTER-B)并获取 IP
第二步它将通过ssh在COMPUTER-B中执行testsuites.sh 下面是伪代码
steps { script { sh """ ssh -i id_rsa -o StrictHostKeyChecking=no ${USER}@${env.IP} "nohup /home/testsuites.sh > foo.out 2> foo.err < /dev/null & " """ } }
此脚本在后台“mvn clean test”中运行,它将运行所有测试用例并在构建结束时生成黄瓜报告。
直到这工作正常。
由于它在后台运行 jenkins 工作不会等待并且将进入下一阶段
第三步 Jenkins Server COMPUTER-A 将发送成功邮件
现在的要求是一旦构建成功,我需要通过另一封邮件发送黄瓜测试报告。如何通知 COMPUTER-A 中的 jenkins 作业(因为它已经完成)发送带有黄瓜报告文件的邮件,该文件位于远程服务器 COMPUTER-B 中。
我可以运行玉米作业来检查构建成功,但是如何通知詹金斯发送带有黄瓜测试报告的电子邮件。
解决方案
你需要的是安静期
node {
build job: 'FetchCucumberReport',
quietPeriod: 60,// in secs -->1min
wait: false
}
所以上面的代码所做的是它会FetchCucumberReport
在 1 分钟后触发 Job。如果您大致知道测试用例完成所有任务需要多长时间(比如说 4 小时)然后设置quietPeriod:14400
(秒),它将在 4 小时后触发构建。
更新
您将不得不查看 API 调用https://wiki.jenkins.io/display/JENKINS/Remote+access+API
一个例如
curl -X POST -u user:password http://localhost:8080/job/FetchCucumberReport/build
希望能帮助到你 :)
推荐阅读
- sql - 从单独的 BigQuery 查询中减去列
- big-o - 寻找伪代码的大 O
- regex - 使用标准重命名文件
- python - 对具有多个约束的表执行 Sql Alchemy On_conflict_do_update
- javascript - Vue过滤器状态数组
- python - 限制命令的问题,discord.py
- jquery - 如何将变量添加到已经连接的选择器?
- java - 我们可以在 Java/Spring 应用程序中使用用 Scala 编写的域模型吗?
- python - Firefox 中的 Selenium“请验证您是人类”弹出窗口
- python - 如何直接从cmd打开Jupyter而不是复制链接