Groovy — Uuid Дженкинса... О Человечество

  • Автор темы Anatoliy72
  • Обновлено
  • 22, Oct 2024
  • #1

У меня есть блок окружения

 environment {

SUITE_RUN_ID = UUID.randomUUID().toString()

SMOKE_CMD = "runtests.sh SUITE_RUN_ID=${SUITE_RUN_ID}" 

FAILED_TESTS = "output_rerun_info.rb SUITE_RUN_ID=${SUITE_RUN_ID}"
}
 

Когда я использую SMOKE_CMD и FAILED_TESTS на соответствующих этапах, я получаю разные UUID... почему?

#jenkins-pipeline #groovy

Anatoliy72


Рег
01 Jun, 2006

Тем
77

Постов
178

Баллов
613
  • 25, Oct 2024
  • #2

Блок необходимо разрешать для каждого этапа, иначе вы не сможете использовать в блоке методы, зависящие от этапа, поэтому потребуется некоторая проверка того, какие методы использовать, а какие не использовать, это приведет к еще большим проблемам. Далее каждый этап может выполняться на другом узле, поэтому коду необходимо его повторно разрешить. В противном случае он будет вести себя по-разному с одним узлом или параллельно. Просто смирись с этим.

Вместо установки переменных в блоке окружения просто установите их на первом этапе. И в агенте установите Jenkinsfile .

 

Reallgamer


Рег
29 May, 2014

Тем
71

Постов
168

Баллов
553
  • 25, Oct 2024
  • #3

def suiteRunId = UUID.randomUUID().toString() worked at the top of the reuseNode true .

Спасибо всем за ваши ответы.

 

Infinity83


Рег
22 Aug, 2009

Тем
65

Постов
186

Баллов
511
  • 25, Oct 2024
  • #4

Если бы вы только добавили недостающую цитату для SMOKE_CMD (спасибо Ильикас кто впервые упомянул что-то об этом в комментарии под вашим вопросом), вы можете получить UUID, которые больше не будут разными... Подобно тому, что вы, похоже, уже сделали во второй версии вашего вопроса.

 

Shbandr


Рег
10 Oct, 2012

Тем
74

Постов
210

Баллов
600
Похожие темы Дата
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно