我想在 PR 中有一个修改文件列表,我尝试了一些解决方案,但我只能访问推送到远程的最后一次提交中的修改文件。
示例:
- 创建一个包含 3 次提交的 PR,一个新的 jenkins 作业开始;
- 修改文件列表包括来自 3 次提交的所有文件;
- 构建失败,将带有修复的新提交推送到 PR,新的 jenkins 作业开始;
- 修改文件列表只包含新提交的文件;
所以,在这个例子中,我想获得 PR 中所有新提交的文件列表。
代码:
def changeLogSets = currentBuild.rawBuild.changeSets
for (int i = 0; i < changeLogSets.size(); i++) {
def entries = changeLogSets[i].items
for (int j = 0; j < entries.length; j++) {
def entry = entries[j]
def files = new ArrayList(entry.affectedFiles)
for (int k = 0; k < files.size(); k++) {
def file = files[k]
print file.path
}
}
}
最佳答案
使用 Git 插件(如果您尚未使用)。然后是这样的:
git diff --name-status $GIT_PREVIOUS_SUCCESSFUL_COMMIT..$GIT_COMMIT > allchanges
这将为您提供自上次成功构建以来所有更改的列表。
关于git - Jenkinsfile,获取PR中所有修改过的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56375743/