【发布时间】:2016-05-07 05:35:21
【问题描述】:
我继承了一个系统,它使用 Jenkins Job DSL 来为我们所有的项目构建作业,我在配置 Jenkins 方面几乎没有经验,对 Jenkins Job DSL 一点也没有,所以请温柔一点。
其中一些项目是 Gradle 项目。有一个函数 createGradleJob() 用于创建 gradle 作业。在这个函数中,我们根据项目的一些特性为工作构建任务列表,作为一个字符串。例如如果它是从主分支构建的,我们会附加“发布”任务。当前,所有这些条件任务都是根据项目分支名称或项目存储库中某些文件的存在或不存在而附加的。
我现在想根据其中一些文件的内容,在此任务列表中添加一个新任务。具体来说,如果在项目 build.gradle 文件中检测到某些关键字,则需要将某些任务附加到任务列表中。
那么,Jenkins Job DSL 中有没有办法检查文件的内容并将其用作条件表达式?
我发现我可以使用 shell 函数执行任意 shell 命令,所以我想我可以只 grep 文件,但我找不到这个函数的文档,所以我'我不清楚我如何能够访问命令的输出,以便在条件表达式中使用它们。
我找到了 textFinder 函数,但这似乎只允许您由于查找或未能找到文本而导致构建失败(或标记为不稳定),而不是使用结果作为条件表达式。
【问题讨论】: