Мне нужно получить GitVersion.exe
переменных в моем конвейере Дженкинса.
Документация GitVersion дает подсказку, как это сделать. По сути звоните gitversion /output buildserver
.
Этот вызов добавляет переменные к текущему шагу, и они теряются после завершения шага. Я могу показать, что этот вызов выполняется при объединении команды set
в одном и том же выполнении bat. Второй set
показывает, что переменные исчезли из среды.
bat 'nuget install GitVersion.CommandLine -OutputDirectory c:/packages -Version 3.6.5'
bat 'c:/packages/GitVersion.CommandLine.3.6.5/tools/GitVersion.exe /output buildserver && set'
bat 'set'
Документация GitVersion знает об этом и предлагает использовать EnvInject .
Установка плагина и выполнение одного и того же конвейера не изменили результат. Я читал, что плагин не предназначен для конвейеров, поэтому может иметь к нему какое-то отношение.
Конвейеры поддерживают синтаксис для окружения .
Следуя этому синтаксису, я могу установить статические переменные в верхней части моего конвейера следующим образом:
environment {
ASuperVariable = 'MySuperVariable'
}
Мне нужно объединить эти вызовы, чтобы я мог добавить переменные времени выполнения к Pupeline Jenkinsfile.
environment {
bat 'gitversion /output buildserver'
}
Теперь очевидно, что приведенный выше вызов даже не является правильным синтаксисом. Есть ли способ отметить раздел так, чтобы содержащиеся изменения среды были доступны для других шагов?
EDIT:
Это все еще не решено. На данный момент мне нужно создать пакетный скрипт и передать инструмент в качестве аргумента. Внутри пакета я могу вызвать инструмент для добавления в среду пакетного сценария и использовать его, когда выполняется пакет. Многострочный пакет в файле Jenkins может быть решением, если процесс остается одинаковым для всех нескольких строк.