我所有的詹金斯工作都在容器奴隶中运行。这些方法都无法获得与正在执行的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