在Jenkins API中,是否有一种方法可以找到最后一次构建的git提交?

3

我想编写一个脚本来自动化热修复功能分支的创建。为了做到这一点,我需要找出如何查看当前构建中的最后一次提交。

是否有办法从Jenkins API获取最后一次提交?

git checkout -b hotfix <commit>
1个回答

5
您没有指定希望使用哪个API。但是假设您使用Jenkins XML API,那么代码可能如下所示:
http://myjenkins/job/myJobName/lastBuild/api/xml?xpath=//lastBuiltRevision/SHA1

lastBuiltRevision 是否指的是在上一次 Jenkins 构建中构建的提交哈希?我正在寻找一种确定我的流水线是否应该重新构建正在部署的应用程序,或者从先前运行中获取现有构建的方法。我们正在使用流水线,但 Git 插件尚不支持,否则我将使用插件提供的 GIT_LAST_COMMIT。因此,我想知道是否可以将当前修订版本与 lastBuiltRevision 进行比较,并在它们不同的情况下进行构建。我可以考虑检查“由 Github 推送启动”,但我认为这可能不太可靠。 - Max Cascone
1
lastBuiltRevision 指的是由 URI(在本例中为 lastBuilt)指向的构建构建的最后一次提交。您可以使用 XML API 以此方式解决该问题。但是既然您已经编写了 Groovy,您可以使用像这样的帮助函数:def getLastSuccesfulSHA1() { def b = currentBuild.rawBuild.getPreviousSuccessfulBuild() return b.getAction(hudson.plugins.git.util.BuildData.class).lastBuiltRevision.sha1String } - jil

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接