#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 Stepniak3. 3-я строка не отвечает за запуск задания, но она выводит журнал запущенного задания на текущую консоль. В показанном вами примере это кажется бесполезным.
4. Правильно, но мне нужно, чтобы журналы были записаны здесь.