Как я могу перечислить переменные, уже доступные в Jenkinsfile?
Я пытаюсь использовать некоторые переменные, такие как имя репозитория, имена веток, номер сборки,... изнутри Jenkinsfile
но я не могу найти какую-либо документацию по этому поводу.
Есть ли способ напечатать их, чтобы я мог видеть, что доступно? Как?
Я думаю, что это может быть связано с печатью переменных и значений в объекте Groovy
Обновить
this.binding.variables.each {k,v -> println "$k = $v"}
Я попытался включить код выше, но теперь выполнение не удается с
org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: Scripts not permitted to use field groovy.lang.Binding variables
at org.jenkinsci.plugins.scriptsecurity.sandbox.whitelists.StaticWhitelist.rejectField(StaticWhitelist.java:177)
4 ответа
Чтобы увидеть переменные среды, попробуйте:
node {
sh 'env | sort'
}
От твоего Pipeline
На странице конфигурации задания нажмите ссылку "Синтаксис конвейера" на левой панели навигации. Он открывается и щелкает левой кнопкой мыши Global variables
, В нем перечислены многие переменные, которые могут быть использованы в Pipeline
Скрипт, включая набор переменных среды, доступен для всех проектов Jenkins.
Пример загрузки значений переменных из Groovy:
mail to: 'devops@acme.com',
subject: "Job '${env.JOB_NAME}' (${env.BUILD_NUMBER}) is waiting for input",
body: "Please go to ${env.BUILD_URL} and verify the build"
В нашем случае мы использовали следующее, чтобы получить все переменные, определенные в Groovy, в Groovy-конвейере jenkinsfile:
groovyVars = [:] << getBinding().getVariables()
groovyVars.each {k,v -> print "$k = $v"}
Вы пытаетесь выполнить свой конвейер внутри песочницы, и операция, которую вы делаете небезопасной, пытаясь получить доступ низкого уровня.
Если вы не являетесь администратором этого Jenkins, у вас нет другого выбора, кроме как спросить у вашего администратора разрешения - это песочница для.
Если вы сами оказались в песочнице - просто снимите флажок под окном конвейера.
если вы все еще хотите быть изолированными, и у вас есть права администратора, перейдите по http://your_jenkins/scriptApproval/ найдите запрос на доступ к функции и подтвердите его.
В случае успеха всех трех вариантов выше, вы перейдете к следующей ошибке в вашем скрипте
groovy.lang.MissingFieldException: Нет такого поля: привязка для класса: WorkflowScript
GL
UPD: убрать ведущее "это", чтобы пройти
Здесь вы можете найти глобальные переменные, которые доступны непосредственно в Pipeline, среди них вы найдете переменные окружения в env