上下文:
library("theSharedLib@v#")
使用v1或v2或v3或该库的其他版本。问题:我有办法找出哪个Jenkinsfile在使用哪个版本的共享库,而不必实际查找所有这些Jenkinsfile文件(50个以上的git repos文件) )?
我最能看到的是一种机制(写入Jenkins主文件或DB中的文件),该项目/ Jenkinsfile在加载库时正在使用哪个版本。
一个可能的解决方案是将一些代码添加到库中将实际执行此报告的每个函数中。然后,我可以看到谁使用了哪个功能。有更好的解决方案吗?
答案 0 :(得分:0)
我写了https://github.com/CiscoDevNet/es-logger是为了从詹金斯那里收集诸如此类的信息。它具有一个插件,该插件将针对已完成作业的控制台日志运行正则表达式,然后可以将事件发布到弹性搜索中。
Jenkins会在日志的开头帮助发布库负载,例如:
Loading library sharedLib@version
像这样的简单正则表达式
"^Loading library\S+(?P<library_name>.*?)@(?P<library_version>.*?)\S+$"
添加到console_log_events插件中后,将通过弹性搜索针对每种用法和每个版本生成事件。