gpt4 book ai didi

jenkins - 在Jenkins Declarative Pipeline中,如何评估特定目录是否更改

转载 作者:行者123 更新时间:2023-12-02 18:12:22 25 4
gpt4 key购买 nike

Jenkins Declarative Pipeline 的条件是围绕分支构建的。我想评估是否在任何分支中更改了特定文件夹,然后运行各个阶段。

类似于:

stage {
when {
folderX changed
}
}

为了让您更好地了解我为什么需要此功能,让我详细说明一下。我正在从事的项目由几个模块组成(比如说微服务)。虽然每个模块都可以有自己的分支甚至存储库,但我们选择将它们放在自己的文件夹中,这样我们就可以始终保持 master 中的所有内容干净。我们的 Jenkins 管道为每个模块都有一个阶段。但是,如果该文件夹中没有任何更改,我们不想重建每个模块。

最佳答案

我终于通过我发现的脚本 block 解决了这个问题 here :

when{ expression {
def changeLogSets = currentBuild.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]
if(file.path.contains("FolderOfInterest")){
return true
}
}
}
}
return false
}
}

关于jenkins - 在Jenkins Declarative Pipeline中,如何评估特定目录是否更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45637353/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com