Можно ли запустить задание DSL Дженкинса из сценария конвейера без утверждения сценария песочницы

#jenkins #permissions #jenkins-pipeline #sandbox

Вопрос:

Ниже приведен мой код конвейера Дженкинса, который помогает запустить другую сборку в той же папке и получить ее журнал(консоль).

      script {
        slaveJob = build job: "Stop_Start", parameters: [string(name: "va_environment", value: "${params.Environment}", trim: true),string(name: "action", value: "${params.Action}", trim: true)]
        println slaveJob.rawBuild.log
            }
 

Как вы можете видеть из приведенной ниже ошибки, для этого требуется утверждение сценария администратором Jenkins.

 org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: Scripts not permitted to use method org.jenkinsci.plugins.workflow.support.steps.build.RunWrapper getRawBuild
    at org.jenkinsci.plugins.scriptsecurity.sandbox.whitelists.StaticWhitelist.rejectMethod(StaticWhitelist.java:265)
    at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor$6.reject(SandboxInterceptor.java:289)
    at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onGetProperty(SandboxInterceptor.java:409)
    at org.kohsuke.groovy.sandbox.impl.Checker$7.call(Checker.java:353)
 

Можно ли это сделать с одобрением скрипта администраторами?

Комментарии:

1. Ошибка возникает из slaveJob.rawBuild (что эквивалентно вызову метода slaveJob.getRawBuild()`). Вы можете либо удалить 3-ю строку, либо вам необходимо запросить у администратора Jenkins разрешение на доступ к этому методу. Удаление строки кажется лучшим выбором, имхо.

2. Как я смогу запустить другое задание DSL, если удалю rawBuild @Szymon Stepniak

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

4. Правильно, но мне нужно, чтобы журналы были записаны здесь.