【问题标题】:Writing Powershell in jenkins File or direct in jenkins在 jenkins 文件中编写 Powershell 或直接在 jenkins 中编写
【发布时间】:2019-09-24 23:40:46
【问题描述】:

我是 Jenkins 的新手,我想用它来自动化一些任务。 Powershell 插件已安装和配置,目前可以使用。我已经有脚本来处理我的任务,比如说 12 个脚本文件,那么 12 个脚本文件。我有一些关于如何最好地将其集成到 Jenkins 管道中的问题。

我想知道是否最好将我的 Powershell 脚本作为单独的文件保留,或者将它们放在存储库中并让 Jenkins 将它们拉下来并运行它们,或者将 Powershell 文件的内容直接复制到 Jenkins 中并运行它们而不是调用单个文件。

其次,我的脚本需要在它们之间传递值。是否有可能有一个 Jenkins 管道,它为不同的任务调用多个 Powershell 脚本文件,我可以将任务 1 中的值传递给 2 等吗?

我想知道最好的方法,调用 Ps 脚本文件并将值返回到 Jenkins 变量中的示例会很好,无论是调用 PS 文件还是直接运行 Powershell 代码。

【问题讨论】:

    标签: powershell jenkins


    【解决方案1】:

    存储 PowerShell 脚本的位置很大程度上取决于详细信息和偏好。就个人而言,如果我只需要它们在这个地方,我会将它们直接放在 Jenkinsfile 中。如果我在不同的地方需要它们,我会把它们放在 Git 中。

    您可以返回 PowerShell 命令的标准输出,将其存储在变量中,然后在另一个 PowerShell 脚本中使用,如下所示:

    def msg = powershell(returnStdout: true, script: 'Write-Output "PowerShell is mighty!"')
    powershell "use $msg here"
    

    这里的问题是您只能从中获取字符串,而不能获取 PowerShell 对象。您还可以返回退出代码并将其存储在变量中。

    有关详细信息,请参阅this

    【讨论】:

    • 感谢 cmets。我确实有一个问题,你提供的例子,如果它是一段 300 行的代码。这将如何运作?另外,如果我调用的是 PS 文件,它将如何工作?多个变量怎么样
    • 300 行代码可能是个问题,因为所有行的标准输出都将存储在变量中。要么将它们分成更小的部分,要么抑制它们的输出。调用 PS 文件应该与在本地计算机上调用它的方式相同(假设它存在于当前目录中)。对于多个变量,您必须将脚本拆分为较小的块,并将每个输出用作其 on 变量。我不是PS专家,我主要使用sh。抱歉,如果无法提供帮助
    【解决方案2】:

    我将所有的 powershell 代码直接放入管道中。但它总是在最大值附近。 10行ps代码。

    【讨论】:

      猜你喜欢
      • 2017-08-25
      • 1970-01-01
      • 2023-03-05
      • 2016-11-25
      • 2021-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-29
      相关资源
      最近更新 更多