все мои задания Дженкинса выполняются в подчиненных контейнерах. Ни один из этих методов не работает для получения файла, который находится в том же репо, что и выполняемый сценарий dsl задания (при условии, что это связано с тем, что они выполняются в контейнерах). Как получить доступ к файлам из сценария Groovy Dsl задания?
//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