Windows – Дженкинс – Отправка Электронного Письма После Сборки С Указанием Версии Сборки В Качестве Темы

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

Я хотел бы отправить электронное письмо в конце сборки, чтобы сообщить об успехе или неудаче. Я использую плагин электронной почты для Дженкинса. Я хочу, чтобы номер версии сборки был темой электронного письма.

Проблема в том, что версия меняется в каждой сборке, поэтому мне нужно каким-то образом редактировать переменную среды, чтобы каждый раз сохранять номер версии (у меня есть сценарий, который сохраняет ее в файл). Это конфигурация по умолчанию: Windows – Дженкинс – отправка электронного письма после сборки с указанием версии сборки в качестве темы

Я хотел бы, например, установить номер версии в переменную с помощью пакетного сценария Windows, например:

rem # Loading version File number
set MY_BUILD_VERSION=<myVersionFile.txt
rem # Loading content
set MY_BUILD_CONTENT=<myContentFile.txt

И используя его в плагине электронной почты, вот так: Windows – Дженкинс – отправка электронного письма после сборки с указанием версии сборки в качестве темы

Проблема в том, что переменные среды не распознаются за пределами файла .bat, из которого они запускаются, хотя я использую плагин envInject, в документации говорится, что то, что запускается из сценария, не будет распознаваться за его пределами.

Есть ли способ загрузить данные в плагин электронной почты из файла или какой-либо другой способ динамической загрузки номера моей версии?

#jenkins #windows #shell-скрипт

Miketrik


Рег
04 Mar, 2011

Тем
72

Постов
185

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

Я нашел способ установить глобальные переменные среды из файла!

Я использую envInject для загрузки переменных из файла.

SET VER_NUM=%1

Например, предположим, что у меня есть файл с именем «versionNumber.txt», созданный в процессе сборки. Возможно, я обновляю его в каждой сборке или каким-либо другим способом. затем я создаю prosFile, который можно идентифицировать с помощью envInject, запустив пакетный скрипт:

call catchmyvar.bat %VERSION_NUM%

Предположим, мой номер версии был 1.5.5.10. так что теперь мой VERSION_NUM равен этой строке.

set /p VERSION_NUM=<versionNumber.txt

теперь VERSION_NUM имеет нужное мне значение. Но это локальное, мне это не поможет. поэтому я переписываю его в файл следующего формата (также используя пакетный скрипт):

теперь у меня есть файл, содержащий следующее содержимое:

И теперь мне просто нужно загрузить файл с помощью плагина envInject:

И теперь у меня есть переменная среды с именем VERSION_NUM, которую можно использовать где угодно в Jenkins. Но я хотел сделать это темой своего электронного письма, поэтому просто сделаю (в Windows и Linux это может быть по-другому):

Вот и все!

 

Alecsy


Рег
09 May, 2020

Тем
69

Постов
195

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

У вас должна быть возможность передать текущие параметры в качестве аргумента пакетному файлу, а затем назначить их переменной, используемой в пакетном файле.

Вы можете сделать этот шаг после сборки перед вызовом плагина электронной почты.

VERSION_NUM=1.5.5.10

 

Aoffeferix11


Рег
19 May, 2014

Тем
63

Постов
174

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

echo VERSION_NUM=%VERSION_NUM% > C:\Temp\prosFile

Извините... предыдущее сообщение было неполным, когда я нажал Enter. Хотя вы решили проблему, я указываю, как можно записать переменные env в командный файл.

set /p VERSION_NUM=<versionNumber.txt

Используйте тот же метод для чтения содержимого файла в переменную:

 

Strannik2006


Рег
10 Feb, 2008

Тем
71

Постов
180

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

Интересно