Как начальное задание может указать свою собственную lookupStrategy? - PullRequest
0 голосов
/ 25 апреля 2018

Используя плагин Job DSL, я пытаюсь заставить начальное задание генерировать новые задания в папке Jenkins относительно местоположения начального задания. Так что, если задание находится в папке /my-project и создает my-job, я бы хотел, чтобы my-job также создавалось в /my-project.

Цель состоит в том, чтобы сделать это без , требующей от человека, который настраивает начальное задание, помнить о необходимости вручную устанавливать контекст на этапе сборки. Вместо этого скрипт для самого начального задания должен указывать местоположение.

Подход 1

Написание начального задания так:

job("my-job") {
}

создает my job в корне проекта Jenkins. Это совсем не то, что я хотел.

Подход 2

Изменение начального задания для включения пути

job("/my-project/my-job") {
}

создает my job в нужной папке, но его нельзя использовать повторно. Если кто-то хочет создать второй экземпляр my job в другой папке, он должен сначала отредактировать файл сценария начального задания.

Подход 3

Метод lookupStrategy выглядит многообещающе, но кажется полезным только в том случае, если начальное задание создает другое начальное задание. Так что, если я изменю задание на начальное значение так:

job("my-job") {
    steps {
        dsl {
            text("job('sub-job')")
            lookupStrategy('SEED_JOB')
        }
    }
}

Тогда my-job все еще создается в корневой папке, но, по крайней мере, sub-job будет создано относительно my-job.

Подход 4

Переменная среды JOB_NAME содержит путь к папке. Можно получить желаемый эффект, выполнив некоторые манипуляции со строками, а затем применив подход из попытки 2, но это выглядит немного не элегантно.

Есть ли какой-нибудь уже запеченный механизм, позволяющий установить lookupStrategy для выполняемой в данный момент работы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...