Как динамически переключаться между агентом Docker и «обычным» агентом в декларативном pipleine - PullRequest
0 голосов
/ 08 ноября 2018

У меня есть jenkinsfile, который иногда должен запускаться на узле, а иногда на агенте докера, в зависимости от определенных параметров. Я бы хотел, чтобы конвейер jenkins динамически переключался между использованием объявления агента docker и более обычным объявлением агента. Единственное, чего мне не хватает, это как параметризировать объявление агента. Я пытаюсь начать просто с передачи объявления агента через переменную, так что у меня есть:

def agentDeclaration = {
    docker {
        label '...'
        image "..."
        args "..."
    }
}

...
pipeline { 
    agent agentDeclaration
    ...
}

Но это не с ошибкой:

org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
WorkflowScript: 117: Only "agent none", "agent any" or "agent {...}" are allowed. @ line 117, column 13.
           agent agentDeclaration
           ^

WorkflowScript: 117: No agent type specified. Must be one of [any, docker, dockerfile, kubernetes, label, none] @ line 117, column 13.
           agent agentDeclaration

Я вижу, что подобные вопросы задавались раньше здесь и здесь . Это возможно?

1 Ответ

0 голосов
/ 08 ноября 2018

Попробуйте передать объявление агента docker в виде строки, например def agentDeclaration = “{ docker { ... } }“, и не забывайте избегать двойных кавычек внутри.

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