jenkins - 在 Jenkins 管道插件的拉取请求中未检测到更改
问题描述
我已将 Jenkins 配置为基于拉取请求 (PR) 构建。我们的存储库是一个多项目存储库,我创建了一个脚本来检测对源代码所做的更改,并且只运行与其中发生更改的项目相关的测试(根据更改的文件的路径):
def getChangedProjects() {
Set projects = []
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]
// get the project folder name and
// add it to changed projects set
projects.add(file.path.tokenize('/')[1])
}
}
}
return projects.findAll {it != null}
}
Groovy 函数按预期工作并检测已更改的文件夹。
问题是大多数时候詹金斯不会显示詹金斯的任何变化:
但是 PR 确实包含对文件的更改,我当然可以在 Github 中看到这些更改。
任何人都知道为什么詹金斯没有显示变化?
解决方案
推荐阅读
- laravel - 使用 spatie imagelibrary 从 API 返回完整的图像路径
- switch-statement - tclsh - getopt 和 switch-case
- wordpress - 使用functions.php wordpress分配父子类别
- python - 获取具有相同路径的元素的信息
- wordpress - Wordpress 如何使用自定义代码嵌入和查看 pdf 文件
- javascript - 如何将反应图标动态添加到对象
- yang - 如何在 yang 中使用一组值向整数叶添加限制
- excel - 使用 IFERROR 返回空白
- azure - 将 Salesforce 数据拉入 Azure
- .net-core - 基于导航属性的任何方法的通用表达式