Как использовать переменную Jenkins в моей Powershell Script
Я написал простой script через PowerShell
, чтобы собрать некоторые файлы и закрепить их в одной папке, назовем ее Script.ps1
. Я хочу, чтобы script выполнялся каждый раз, когда Jenkins делает новую сборку, однако мне также хотелось бы, чтобы имя zip файла было BUILD_NUMBER
.
Как создать переменную в PowerShell
, которая является текущим номером сборки Jenkins? На момент, когда я вызываю Script.ps1
в разделе оболочки выполнения.
Ответы
Ответ 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
Также обратите внимание на экранирование двойных кавычек. Взял меня довольно долго:)