我最近发现了abidiff
;一种以两个二进制文件作为输入并描述 ABI 差异的工具。这对于检测 ABI 版本号何时需要更改可能很有用。
理想情况下,我们会将其集成到基于 Jenkins 的 CI 中,但我无法立即看到在当前构建中的文件和上次成功构建中的相应文件上运行命令的直接方法(最好在同一分支上) )。
我确实尝试了 Exceute Shell
构建步骤,但看不到一种明显的方法来获取先前成功的构建号,从中我最终能够获得一条路径我想要比较的文件。关于如何获得这个的任何建议/指示?有 GIT_PREVIOUS_SUCCESSFUL_COMMIT
环境变量,但据我所知,这没有多大用处,因为将 SHA 解析为磁盘上的文件需要将 SHA 解析为内部版本号。
最佳答案
您可以像这样找到最后一次成功的构建(如果您使用管道)
import jenkins.model.*
def job = jenkins.model.Jenkins.instance.getItemByFullName('<jobname>')
def buildNumber = job.getLastSuccessfulBuild().getNumber()
sh "abidiff <my-file> ../builds/$buildNumber"
您可能还想查看:How to retrieve build_id of latest successful build in Jenkins?
或者您可能会想到 archiveArtifacts
关于c++ - 在两个 Jenkins 构建中的文件之间运行特定的 diff 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58305510/