Инструменты пользователя

Инструменты сайта


jenkins:pipeline

Jenkins pipelines

Agents

Environment

Stages (Steps)

When

Scripts

Переменные

* Объявленые с def являются локальными, доступны в рамках одного стейджа. Объявленые без него, глобальные, доступны на всех стейджах, даже на разных нодах

* Просто переменная не становится переменной окружения. Переменными окружения становятся только объявленые в блоке «environment»
Глобальный блок доступен на всех стейждах и нодах, локальный с-но только в указанном стейдже
Объявление через объект «env.<MY_VAR>« создает переменную окружения причем сразу глобальную

Тип переменной

script {
  def variable="dcdcd"
  println variable.getClass()
  sh "echo ${variable.getClass()}"
  //println $variable.getClass() - error
  //println ${variable}.getClass() - error
}   

Sh

Выполнение команд совместно с echo

// Работают все три варианта
sh """
  echo "`pwd` myvar1 - ${my_var}"
  echo `pwd`" myvar2 - ${my_var}"
  echo "\$(pwd) myvar3 - ${my_var}"
"""

Переменные

Нужно экранировать знак $ при использовании локальных переменных

sh """
  MY_VAR='this is text'
  echo \$MY_VAR
"""

Если переменная внутри кавычек то только внутри двойных, в одинарных не раскрывается

sh """
  MY_VAR='this is text'
  echo "\$MY_VAR"
  echo "\${MY_VAR}"
"""

Переменные в подоболочке (выполнение команд с подключением по ssh)
В таком случае доступны только переменные из Groovy, объявленые в блоке «sh» недоступны

script {
  MY_VAR1="groovy-my-var"
  sh """
    MY_VAR2="shell-my-var"
    echo "pre - $MY_VAR1 - \$MY_VAR2"
    ssh user1@1.1.1.1 'echo "$MY_VAR1 - \$MY_VAR2"'  # Здесь доступна только $MY_VAR1
  """
}
:!:
 
:!:
 
jenkins/pipeline.txt · Последнее изменение: 2025/02/12 04:29 — admin