Git 詹金斯:如何检查PullRequest文件夹中的文件自上次生成以来是否发生了更改?

Git 詹金斯:如何检查PullRequest文件夹中的文件自上次生成以来是否发生了更改?,git,jenkins,Git,Jenkins,这似乎是一个相当流行的问题,但都有不同的差异,我无法找到它的底部 我的git存储库在一个单独的文件夹中有两个项目。我想通过pull请求触发Jenkins CI,并仅当某个特定项目的子文件夹中的文件自上次提交以来发生更改时,才为该项目运行build 我已经学习了如何通过pull请求触发Jenkins CI(使用MultiBranchPipeline Jenkins项目类型) 我可以在CI中执行脚本(我的repo中的JenkinsFile) 此外,我知道如何在上次提交(git diff HEAD^H

这似乎是一个相当流行的问题,但都有不同的差异,我无法找到它的底部

我的git存储库在一个单独的文件夹中有两个项目。我想通过pull请求触发Jenkins CI,并仅当某个特定项目的子文件夹中的文件自上次提交以来发生更改时,才为该项目运行build

我已经学习了如何通过pull请求触发Jenkins CI(使用MultiBranchPipeline Jenkins项目类型)

我可以在CI中执行脚本(我的repo中的JenkinsFile)

此外,我知道如何在上次提交(git diff HEAD^HEAD Frontend/)时检测特定子文件夹中是否有任何文件更改

但我不知道如何在pull请求中识别提交,以便检查子文件夹中对这两个提交的更改

问题:我如何知道拉取请求中有哪些提交

还是最后一个问题:

问题:如何检查PullRequest文件夹中的文件自上次生成以来是否发生了更改

另外,我知道詹金斯知道这一点,因为我在日志中看到了修订版:

Checking out Revision 88f657f0d3c63c43ba3b07686c93a640ca681e00 (PR-4)
如何在脚本级别访问它


谢谢

在谷歌搜索之后,我想出了一个解决办法:我没有试图从Jenkins那里获取信息,而是决定从Git中获取信息,幸运的是它有一个很好的命令,显示分支或提交之间的增量:

git merge-base HEAD origin/master
唯一的问题是,出于某种原因,Jenkins作为PR的一部分从Github提取的回购协议没有看到“origin/master”:它只看到了“origin/PR xyz”。即使我真的“找到了原始主机”,也没用

所以我不得不手动添加一个遥控器。由于回购协议在PR打开时由Jenkins保留,我添加了“如果”,以确保顺序PR运行不会失败,因为remote已经存在:

        String remotes = powershell script:'git remote', returnStdout:true
        echo 'Remotes: '+remotes                
        if( !remotes.contains('github') )
        {
            echo 'Adding github remote'
            powershell script:'git remote add github https://github.com/SeredaOM/JenkinsLearning.git'
            powershell script:'git fetch github master'
        }
另外,如果有人有更好的解决方案,请告诉我,这将是一个很好的学习材料