Подтвердить что ты не робот

Как использовать переменную Jenkins в моей Powershell Script

Я написал простой script через PowerShell, чтобы собрать некоторые файлы и закрепить их в одной папке, назовем ее Script.ps1. Я хочу, чтобы script выполнялся каждый раз, когда Jenkins делает новую сборку, однако мне также хотелось бы, чтобы имя zip файла было BUILD_NUMBER.

Как создать переменную в PowerShell, которая является текущим номером сборки Jenkins? На момент, когда я вызываю Script.ps1 в разделе оболочки выполнения.

4b9b3361

Ответ 1

Вы можете добавить аргументы в свой Script.ps1. Просто используйте Param в верхней части script:

Param( $BuildNumber ) #must be first statement in script
# your current script goes here

то вы можете вызвать script передачу BUILD_NUMBER в качестве аргумента от Jenkins. См. этот вопрос для вызова Powershell script с аргументом.

Ответ 2

Я не знаком с Дженкинсом, но считаю, что BUILD_NUMBER - это переменная среды.

Чтобы получить доступ к нему в PowerShell, используйте $env:BUILD_NUMBER

например. Если использовать 7-zip

7z.exe a "$env:BUILD_NUMBER.zip" C:\Build\Path 

Ответ 3

Вы также можете использовать плагин Powershell, см. здесь.

Затем вы можете использовать доступные переменные среды (см. документ плагина). Обратите внимание, что доступ довольно загадочный (насколько мне известно):

(Get-Content ./Sources/SlmMachineControl/GUI/Project1.rc).replace("`"FileVersion`", `"1.0.0.0`"" ,"`"FileVersion`" `"2.3.$($env:BUILD_NUMBER).0`"") | Set-Content ./Sources/SlmMachineControl/GUI/Project1.rc

Также обратите внимание на экранирование двойных кавычек. Взял меня довольно долго:)