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

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


jenkins:pipeline

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
jenkins:pipeline [2025/01/29 07:35]
admin создано
jenkins:pipeline [2025/02/12 04:29] (текущий)
admin
Строка 12: Строка 12:
  
 ===== When ===== ===== When =====
 +
  
  
Строка 17: Строка 18:
  
 ==== Переменные ==== ==== Переменные ====
 +* Объявленые с **def** являются локальными, доступны в рамках одного стейджа. Объявленые без него, **глобальные**, доступны на всех стейджах, даже на разных нодах\\
  
 +* Просто переменная **не становится переменной окружения**. **Переменными окружения** становятся только объявленые в блоке **"environment"**\\
 +**Глобальный** блок доступен на всех стейждах и нодах, **локальный** с-но только в указанном стейдже\\
 +Объявление через объект **"env.<MY_VAR>"** создает переменную окружения причем сразу **глобальную**\\ 
 +
 +**Тип переменной**
 +<code groovy>
 +script {
 +  def variable="dcdcd"
 +  println variable.getClass()
 +  sh "echo ${variable.getClass()}"
 +  //println $variable.getClass() - error
 +  //println ${variable}.getClass() - error
 +}   
 +</code>
  
  
 ===== Sh ===== ===== Sh =====
 +Выполнение команд совместно с **echo**\\
 +<code groovy>
 +// Работают все три варианта
 +sh """
 +  echo "`pwd` myvar1 - ${my_var}"
 +  echo `pwd`" myvar2 - ${my_var}"
 +  echo "\$(pwd) myvar3 - ${my_var}"
 +"""
 +</code>
  
-==== Переменные ==== 
  
 +
 +==== Переменные ====
 Нужно экранировать знак **$** при использовании локальных переменных\\ Нужно экранировать знак **$** при использовании локальных переменных\\
 <code groovy> <code groovy>
Строка 30: Строка 56:
   echo \$MY_VAR   echo \$MY_VAR
 """ """
 +</code>
 +
 +Если переменная внутри кавычек то только внутри **двойных**, в одинарных не раскрывается
 +<code groovy>
 +sh """
 +  MY_VAR='this is text'
 +  echo "\$MY_VAR"
 +  echo "\${MY_VAR}"
 +"""
 +</code>
 +
 +
 +Переменные в подоболочке (выполнение команд с подключением по ssh)\\
 +В таком случае доступны только переменные из Groovy, объявленые в блоке "sh" недоступны\\
 +<code groovy>
 +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
 +  """
 +}
 </code> </code>
  
jenkins/pipeline.1738136123.txt.gz · Последнее изменение: 2025/01/29 07:35 — admin