Groovy Pipeline从git获取最后n个提交和更改

时间:2019-02-08 14:21:44

标签: git powershell jenkins groovy jenkins-pipeline

我有一个git存储库,其中已删除和删除了文件。每个文件都是唯一的,并且内部有一个链接。我们使用Jenkins轮询git并获取该提交,然后根据它启动Jenkins构建。
我现在面临的问题是,我想从主服务器获取最后n个提交,然后遍历每个提交以确定应基于某些条件重建哪些提交。

是否可以通过groovy从git获取该信息?我发现最后一次提交,最后一次詹金斯构建是可能的,但我还需要更多。除了编写返回此类数据的Powershell脚本之外,还有其他方法吗?

Windows env。在此先感谢,希望这一点很清楚。

1 个答案:

答案 0 :(得分:1)

有两种方法:

  1. 您可以获得all changes in the current build,并且可以导航 到以前的版本:currentBuild.previousBuild.changeSets
    提示:检查是否有以前的版本: if(currentBuild.previousBuild)或使用null安全运算符:currentBuild.previousBuild?.changeSets

  2. 您可以编写一个Shared Library,以满足您的特定需求。因为Jenkins对Groovy脚本使用CPS(连续传递样式),所以这会花费更多的精力,并且容易出错。您可以使用Grape在Groovy脚本中使用Maven存储库中的库。