【问题标题】:How to use a Jenkins variable in my Powershell Script如何在我的 Powershell 脚本中使用 Jenkins 变量
【发布时间】:2014-08-09 02:52:06
【问题描述】:

我通过PowerShell 编写了一个简单的脚本来收集一些文件并将它们压缩到一个文件夹中,我们称之为Script.ps1。我想让脚本在每次 Jenkins 进行新构建时运行,但是我也希望 zip 文件的名称是 BUILD_NUMBER。

如何在PowerShell 中创建一个变量,即 Jenkins 当前的内部版本号?目前,我在配置的执行 shell 部分中调用 Script.ps1。

【问题讨论】:

    标签: powershell jenkins


    【解决方案1】:

    我不熟悉 Jenkins,但我相信 BUILD_NUMBER 是一个环境变量。

    要在 PowerShell 中访问它,请使用 $env:BUILD_NUMBER

    例如如果使用 7-zip

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

    【讨论】:

    • 我刚刚在 Jenkins 中尝试过,效果非常好。谢谢!
    • 谢谢!我不知道为什么您的解决方案标有绿色复选标记。这是真正的解决方案。
    【解决方案2】:

    您可以向Script.ps1 添加参数。只需在脚本顶部使用Param:

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

    然后您可以调用脚本传递 BUILD_NUMBER 作为 Jenkins 的参数。带参数调用Powershell脚本参考this question。

    【讨论】:

      【解决方案3】:

      您也可以使用 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
      

      还要注意双引号的转义。花了我好一阵子:)

      【讨论】:

        猜你喜欢
        • 2021-01-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-06-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多