groovy Jenkins打印构建作业提交ID

9cbw7uwe  于 2022-11-01  发布在  Jenkins
关注(0)|答案(1)|浏览(122)

我想存储并打印自上次在jenkins pipeline中构建以来发生在git上的所有提交
please find this image
在上一个版本和当前版本之间,有3次提交发生在git上,我只需要打印这些提交ID和提交用户的名字

gcuhipw9

gcuhipw91#

您可以使用以下脚本获取上次成功生成与当前生成之间的更改集。如果您只想获取上次生成的更改集,则只需在管道中执行currentBuild.changeSets即可。

def allChangeSetsFromLastSuccessfulBuild() {
    def job = Jenkins.instance.getItem("$JOB_NAME")
    def lastSuccessBuild = job.lastSuccessfulBuild.number as int
    def currentBuildId = "$BUILD_ID" as int

    def changeSets = []

    for(int i = lastSuccessBuild + 1; i < currentBuildId; i++) {
        echo "Getting Change Set for the Build ID : ${i}"
        def changeSet = job.getBuildByNumber(i).getChangeSets()
        changeSets.addAll(changeSet)
    }
    changeSets.addAll(currentBuild.changeSets) // Add the current change set
    return changeSets
}

相关问题