Jenkins 何时在步骤中使用脚本?

问题描述 投票:0回答:1

我正在查看一些旧的詹金斯代码。 我们所有的步骤都包含 script 标签。 例如

stage("create_baseline"){
    steps {
        script {
            sh("""some commands """)
            created_patch = sh(returnStdout: true, script:  """some other command""")
            echo "created patch ${created_patch}"
        }
    }
}

在阅读jenkins关于脚本的文档时它说:

脚本步骤在声明式管道中应该是不必要的,但它 可以提供有用的“逃生舱口”。大小不小的脚本块 和/或复杂性应该转移到共享库中。

阅读描述时,我试图提出与库无关的、何时使用脚本标签的示例,但无法给出任何示例。有人可以解释何时在步骤中使用脚本标记吗?我很好奇我是否可以删除所有脚本标签,或者是否在某些情况下确实需要它。

jenkins
1个回答
0
投票

医生还说:

脚本步骤采用脚本化管道块并在声明式管道中执行它。

基本上,脚本块允许您在声明性管道内使用脚本化管道语法,这意味着您可以编写常规的 Groovy 代码,并在打开

script
块后使用 Groovy 为您提供的大部分功能。

至于是否可以删除脚本块取决于您是否在管道中使用了常规的 Groovy 代码。例如,您是否使用过

def
关键字来定义变量?如果是这样,那么您无法删除脚本块,因为它是脚本化管道的一部分。

© www.soinside.com 2019 - 2024. All rights reserved.