c++ - 在两个 Jenkins 构建中的文件之间运行特定的 diff 命令

标签 c++ c jenkins abi

我最近发现了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/

相关文章:

c++ - 如何创建抽象类的动态数组?

调用 malloc 并将返回值存储在双指针中?

Jenkins pipelineTriggers 选项崩溃

jenkins - 如何在谷歌云中获取Jenkins的临时密码

c++ - 实时 C 编程示例

python - 从 C++ 库创建 Python 包

gtk 中的困惑阶段无法处理阶段鼠标按下事件

C - 内存映射一个 B 树

java - 如何从 fabric 或 Jenkins 以编程方式下载 .apk 和 .ipa 文件?

c++ - 重载运算符参数太多,visual studio c++