在代理主机上读取 DSL 构建中的配置文件



我尝试配置 Jenkins 的种子作业,其中整个业务都在提供的 DSL 脚本中。我想将该脚本与其配置分开,我想在额外的 yml 文件中找到该配置。当我尝试读取该文件时:

@Grab('org.yaml:snakeyaml:1.17')
import org.yaml.snakeyaml.Yaml
def workDir = SEED_JOB.getWorkspace()
def config = new Yaml().load(("${workDir}/config.yml" as File).text)

我收到错误

java.io.FileNotFoundException: /var/lib/jenkins/workspace/test.dsl/config.yml (No such file or directory)

我想 Jenkins 正在主主机上查找文件,而不是工作区所在的代理节点。是否可以在代理节点上的 DSL 构建步骤中读取 yml 文件?或者,也许我必须始终在我的主主机上执行该种子作业?

这似乎是不可能的,因为 jobDsl 脚本是在主服务器上执行的。您可以尝试强制在带有标签master的主服务器上运行作业。

从脚本位置部分中的文档:

作业 DSL 脚本在 Jenkins 主节点上执行,但包含脚本文件的种子作业工作区可能驻留在构建节点上。这意味着可能无法从 DSL 脚本直接访问 FILE 指定的文件。有关详细信息,请参阅分布式构建。

相关内容

  • 没有找到相关文章

最新更新