如何在Jenkins中访问修改后的提交?

9vw9lbht  于 2023-10-17  发布在  Jenkins
关注(0)|答案(1)|浏览(154)

我使用一个自定义触发器来扫描存储库中的更改,并在需要时启动构建。它是一个Jenkinsfile,附带一些helper gradle脚本。
检查更改的核心功能是git diff。它获取GIT_PREVIOUS_COMMITGIT_COMMIT并比较它们。这是完美的工作,直到有一个强制推送或修改提交。
Jenkins在不知道提交历史的情况下检查最新的提交。当然,git diff也会失败,因为它找不到被修改的提交的引用。
在本地,当前提交和修改提交之间的git diff可以工作,因为我有所有的历史记录。但我想知道是否有一种方法可以在管道中做到这一点。
我的问题是:

  1. bitbucket是否存储提交历史,以及是否可以在Jenkins中以某种方式获取它?
  2. Jenkins存储是否从某个构建提交?是否可以从以前的Jenkins构建中获得提交?
    编辑1和2:错字和造型。
    编辑3:我也发现了currentBuild.changeSets,但它对我的用例不起作用。如果有一个力推动,它返回一个空集。有一个开放的bug:https://issues.jenkins.io/browse/JENKINS-68010
wd2eg0qa

wd2eg0qa1#

如果其他人也有同样的问题:
我已经成功地从Jenkins中的Bitbucket中获取了旧的(修改的)提交。所以,是的,Bitbucket存储提交历史。如果你有Git凭据,可以在Jenkins脚本中完成:git fetch origin <full_commit_hash>注意,它必须是完整的提交哈希,而不是它的短版本。

相关问题