我已经通过PowerShell
编写了一个简单的脚本来收集一些文件并将它们压缩到一个文件夹中,我们称之为Script.ps1
。我希望每次Jenkins执行新构建时都运行脚本,但我也希望zip文件的名称为BUILD_NUMBER
。
如何在PowerShell
中创建Jenkins当前版本号的变量?截至目前,我正在调用配置的执行shell部分中的Script.ps1
。
答案 0 :(得分:54)
我不熟悉Jenkins,但我相信BUILD_NUMBER
是一个环境变量。
要在PowerShell中访问它,请使用$env:BUILD_NUMBER
E.g。如果使用7-zip
7z.exe a "$env:BUILD_NUMBER.zip" C:\Build\Path
答案 1 :(得分:5)
您可以为Script.ps1
添加参数。只需在脚本顶部使用Param
:
Param( $BuildNumber ) #must be first statement in script
# your current script goes here
然后你可以调用从Jenkins传递BUILD_NUMBER
作为参数的脚本。有关参数调用Powershell脚本,请参阅this question。
答案 2 :(得分:1)
您也可以使用Powershell插件,请参阅here。
它允许您直接在Jenkins的文本框中输入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
另请注意双引号的转义。花了我一段时间:))