我有一个Jenkins的工作超过100个版本。我需要搜索该作业的所有构建,以查找在控制台输出中具有特定字符串的构建。有没有插件?我怎么做?通过Jenkins工作台的控制台输出进行搜索
6
A
回答
3
如果没有额外的要求,我会做简单的外壳,如:
find $JENKINS_HOME/jobs/haystack -name log -exec grep -l needle {} \; \
| sed 's|.*/\(.*\)/log|\1|'
1
上的错误和警告的摘要突出感兴趣的行日志中(错误,警告,信息)
将日志划分为多个部分,显示日志及其部分中错误,警告和信息行数量的摘要。
错误和警告的汇总连接成完整的日志的情况下,因此很容易找到日志
在一条线上的兴趣显示了构建页面
如果它是旧的日志,那么@jil的答案假设你在Linux上。
+0
不需要假设Linux。只需_bash_,_find_,_grep_和_sed_。他们可以很容易地安装在Windows上(例如从cygwin或mingw),并且很有可能你已经拥有了它们,例如,如果你使用的是Git。 – jil
5
我经常使用Jenkins Script Console来完成这样的任务。 Groovy plugin提供了脚本控制台,但是如果您要使用脚本控制台进行定期维护,您还需要Scriptler plugin,它允许您管理您运行的脚本。
从管理詹金斯 - >脚本控制台,你可以写,通过作业的迭代构建寻找匹配的字符串Groovy脚本:
JOB_NAME = "My Job"
BUILD_STRING = "Hello, world"
def job = Jenkins.instance.items.find { it.name == JOB_NAME }
for (build in job.builds) {
def log = build.log
if (log.contains(BUILD_STRING)) {
println "${job.name}: ${build.id}"
}
}
0
感谢大家对你有价值的解决方案。在进行了一些额外的研究之后,我发现Jenkins中有一个插件可以做到这一点。
https://wiki.jenkins-ci.org/display/JENKINS/Lucene-Search
这将保存控制台输出结果和用户可以做的搜索框搜索。
相关问题
- 1. 运行Jenkins时的控制台输出
- 2. jenkins作业控制台的输出是如何工作的?
- 3. 过滤jenkins控制台输出的作业
- 4. Jenkins安全输出控制台faild build
- 5. 在Jenkins控制台中输出VBscript
- 6. 控制台管道输出:Jenkins
- 7. C#控制台输出不工作
- 8. Rails 4:从控制台进行简单的通配符搜索
- 9. 通过java控制台逐行输入
- 10. 写作控制台输出
- 11. Java:Runtime.exec()只能通过控制台工作
- 12. 通过SSH读取进程的控制台输出,linux
- 13. 控制台输出
- 14. 输出控制台
- 15. 弹性搜索控制台
- 16. 通过控制台
- 17. Eclipse通过控制台输入进行调试
- 18. 需要对控制台缓冲区和控制台输出进行响应
- 19. Log4j2写入Jenkins管道作业控制台输出?
- 20. Jenkins控制台输出格式为selemium webdriver执行
- 21. 控制台输出到子进程
- 22. os.system()的控制台输出?
- 23. 的IntelliJ控制台输出
- 24. Jenkins通过SSH运行Shellscript不离开控制台
- 25. 通过控制台输入密码
- 26. 自定义控制台输出通道
- 27. 重定向控制台输出从子控制台进程到父控制台进程失败
- 28. 阅读等过程控制台输出
- 29. 在Eclipse中过滤控制台输出
- 30. 如何将应用程序的控制台输出提取到Jenkins控制台输出?
虽然这是一个很好的答案,但如果我的一位开发人员要求访问我们的Jenkins服务器,以便他们可以针对作业目录运行shell命令,我会非常害怕。 :) –
你可以创建一个Jenkins作业,然后在shell步骤中运行这个工作,如果你关心的是@Dave。并且提到你自己的答案,我不认为在控制台中运行Groovy脚本比授予shell访问更安全:) – jil