所以我们有一个Jenkins服务器,我们使用gerrit来编写代码,检查我们的开发分支,我们安装了Klocwork社区插件。
我们的Jenkins生成的构建是+1验证在推送上的选票。
目前,我们只在合并的开发分支上每隔几个小时进行一次Klocwork扫描,而我希望对每一个补丁集推送执行增量/diff扫描,以防止错误的代码从一开始就通过。
因此,我在Jenkins构建配置中设置了Klocwork插件,但是当我添加增量扫描构建步骤时,因为我们使用的是Git,所以需要我输入以前的提交SHA。我什么都试过了,但都没成功。
我尝试过$GIT_PREVIOUS_SUCCESSFUL_COMMIT,但它似乎不起作用,而且对我们来说似乎也是错误的,因为以前的Jenkins提交可能基于一个完全不同的分支(家长),所以改变的差别是没有意义的。
我们当时的想法是,以前的提交应该与父SHA进行比较,而不一定是Jenkins在同一分支上构建的最后一个Jenkins。
因此,我在构建之前添加了一个windows批处理文件构建步骤,该步骤使用git日志获取父SHA1,将其导入到文件中,然后使用SET设置一个env变量,如PARENT_COMMIT和该SHA1,然后在Klocwork增量的“前一个提交SHA”区域中尝试使用%PARENT_COMMIT%,由于找不到var,构建失败。
我觉得这是一件很普通的事情,所以解决方案必须是愚蠢的,简单的,我们正在使它变得比它所需要的更复杂,但我无法为我的一生找到任何文件来告诉我在这个盒子里放什么东西。
(请帮助:)
谢谢!
发布于 2018-10-11 19:41:34
你在用Jenkins gerrit触发器插件来触发构建,对吗?因此您可以尝试使用$GERRIT_PATCHSET_REVISION^,它是由环境变量GERRIT_PATCHSET_REVISION定义的SHA1的第一个父级。
https://stackoverflow.com/questions/52752926
复制相似问题