Задание Jenkins dsl - как получить доступ к локальным файлам в рабочей области узла / ведомого, выполняющего задание dsl (вместо запуска на master) - PullRequest
0 голосов
/ 25 октября 2019

все мои задания Дженкинса выполняются в подчиненных контейнерах. Ни один из этих методов не работает для получения файла, который находится в том же репо, что и выполняемый сценарий 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...