Jenkins 在构建中提取了哪些提交?

What commits are pulled by Jenkins in the build?

Jenkins 有关于特定构建中包含的提交的信息。我知道这是因为 Jenkins 显示了这个(见下面的截图)。

如何在 CI 执行期间提取有关构建中包含的提交的信息?

需要此信息来检查哪些文件夹修改了文件,并因此确定 Jenkins 应执行的操作。

谢谢!

P.S。为了在 PR 的 CI 个工作中实现这一点,我使用 git 命令:

git rev-parse github/master

它是 returns 在当前分支分支之前在 master 中进行的最后一次提交(为了使其工作,我添加了 'github' 远程)。显然,它不能在 'master' 分支本身中工作。所以我在想,也许 Jenkins 有一些我可以使用的内置信息?或者一些 Jenkins 插件可以提供帮助?

显然,有一堆链接,但我找不到任何链接,直到我找到 google 的关键字。

第一个,有一个 DevOps 版本的 Whosebug: https://devops.stackexchange.com/ 它可能有更多人活跃可以帮助解决 Jenkins 相关问题

2nd,思路是利用jenkins变量currentBuild进一步迭代:

  • currentBuild.previousBuild
  • build.changeSets
  • 构建中的项目
  • 提交哈希在 item.commitId

帮助我找出解决方案的链接:

重要说明:

  1. 由于 Groovy 在 Jenkins 中的工作方式,您需要将此逻辑放入单独的函数中并向其添加“@NonCPS”属性
  2. 里面的所有变量都需要加上'def'前缀(尽管我的prettier告诉我这不是必需的),没有这个你会出现“java.io.NotSerializableException: hudson.plugins.git.GitChangeSetList”的错误.

希望这对其他人也有帮助!