问题
In a Jenkins build I see a list of changed files:
So which command Jenkins uses to get this list (I am using git for repository version control).
回答1:
You can use the changeSets property of the currentBuild global variable to get information relating to the detected changes of the current build.
e.g.
// returns a list of changed files
@NonCPS
String getChangedFilesList() {
changedFiles = []
for (changeLogSet in currentBuild.changeSets) {
for (entry in changeLogSet.getItems()) { // for each commit in the detected changes
for (file in entry.getAffectedFiles()) {
changedFiles.add(file.getPath()) // add changed file to list
}
}
}
return changedFiles
}
回答2:
Possibly one of the two possible commands listed in "How to list all the files in a commit?":
git diff-tree --no-commit-id --name-only -r <commit-ish>
Note that the Jenkins Git plugin does expose that commit as an environment variable: GIT_COMMIT
来源:https://stackoverflow.com/questions/54175878/which-jenkins-command-to-get-the-list-of-changed-files