Как я могу перечислить переменные, уже доступные в 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

Другие вопросы по тегам