首页 > 解决方案 > 强制所有 Jenkins 管道调用函数?

问题描述

我在一家定义了数百个 Jenkins 管道的公司工作。

我们有一组扫描,我们希望每个管道都运行(SonarQube、Checkmarx、Blackduck 等)。有没有办法可以编写一个在每个管道结束时自动调用的函数?我不想进入我们数百个 Jenkinsfiles 中的每一个文件并post为每个文件添加一个块......我正在寻找更像是一个在每项工作结束时自动触发的钩子的东西,无需更改所有作业的配置。

我浏览了 Jenkins 文档并查看了已经存在的插件列表,但没有看到任何看起来很有希望的插件。

到目前为止,我想出的唯一可能性是拥有一个每晚运行的管道,在我们的 git 中的每个 repo 上找到每个 Jenkinsfile,并使用Jenkins Pipeline Unit运行测试以验证是否调用了所有预期的函数并发送电子邮件维护者是否遗漏了任何内容。对于我认为相当普遍的需求,这听起来像是付出了很多努力?

标签: jenkinsdevsecops

解决方案


我不是 100% 确定,但 Freestyle Jenkins 作业可以设置为触发“在其他项目构建后构建”。它甚至说“例如,这对于在构建完成后运行广泛的测试很方便。”

我在一个 Maven 项目和一个 Pipeline 项目上检查了这个,它可以工作。它似乎不适用于多分支管道项目(它无法识别它们)。

这有点落后,但您可以在此触发行中列出所有项目。

还有这个插件 https://plugins.jenkins.io/join/


推荐阅读