Jenkins Job dsl-如何访问运行dsl作业的节点/从属服务器(而不是在主服务器上运行)的工作区中的本地文件

时间:2019-10-25 05:47:22

标签: jenkins jenkins-plugins jenkins-job-dsl

我所有的詹金斯工作都在容器奴隶中运行。这些方法都无法获得与正在执行的job dsl脚本位于相同存储库中的文件(假设这与它们在容器中运行这一事实有关)。如何从作业dsl groovy脚本访问文件?

//cant find file
def config = readFileFromWorkspace('config.yaml')

// cant find file
def workDir = SEED_JOB.getWorkspace()
def config = new Yaml().load(("${workDir}/config.yaml" as File).text)

我试图找到cwd:

import static groovy.io.FileType.FILES
def dir = new File(".");
def files = [];
dir.traverse(type: FILES, maxDepth: 0) { files.add(it) };

files.each {
    println it.path
}

仅打印此内容:

./.dockerenv

我可以看到其克隆到的目录:> git init /home/jenkins/agent/workspace/abc/folder1/myjob # timeout=10

但是当我尝试列出该文件夹中的文件时,它说它不存在:

import static groovy.io.FileType.FILES
def dir = new File("/home/jenkins/agent/workspace/bombora/devops/jobs-dsl-test")
def files = []
dir.traverse(type: FILES, maxDepth: 3) { files.add(it) }

遇到此错误

FATAL: /home/jenkins/agent/workspace/abc/folder1/myjob
java.io.FileNotFoundException: /home/jenkins/agent/workspace/abc/folder1/myjob

0 个答案:

没有答案