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).
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).
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
}
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