哪个 Jenkins 命令获取已更改文件的列表

Men*_*n X 9 git jenkins jenkins-cli

在 Jenkins 构建中,我看到了已更改文件的列表:

在此处输入图片说明

那么 Jenkins 使用哪个命令来获取此列表(我使用 git 进行存储库版本控制)。

小智 10

您可以使用变更的财产currentBuild全局变量来获得与当前构建的检测变化的信息。

例如

// 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

}
Run Code Online (Sandbox Code Playgroud)

  • 感谢您的代码,它运行良好,但返回类型应该是“List<String>”,而不是“String”,并且由于 Jenkins/Groovy 正在默默地转换为 String,所以我花了一段时间才发现问题所在。 (3认同)

Von*_*onC 5

可能是“如何列出提交中的所有文件? ”中列出的两个可能的命令之一:

git diff-tree --no-commit-id --name-only -r <commit-ish>
Run Code Online (Sandbox Code Playgroud)

请注意,Jenkins Git 插件确实将该提交公开为环境变量:GIT_COMMIT