我正在查看一些旧的詹金斯代码。 我们所有的步骤都包含 script 标签。 例如
stage("create_baseline"){
steps {
script {
sh("""some commands """)
created_patch = sh(returnStdout: true, script: """some other command""")
echo "created patch ${created_patch}"
}
}
}
在阅读jenkins关于脚本的文档时它说:
脚本步骤在声明式管道中应该是不必要的,但它 可以提供有用的“逃生舱口”。大小不小的脚本块 和/或复杂性应该转移到共享库中。
阅读描述时,我试图提出与库无关的、何时使用脚本标签的示例,但无法给出任何示例。有人可以解释何时在步骤中使用脚本标记吗?我很好奇我是否可以删除所有脚本标签,或者是否在某些情况下确实需要它。
医生还说:
脚本步骤采用脚本化管道块并在声明式管道中执行它。
基本上,脚本块允许您在声明性管道内使用脚本化管道语法,这意味着您可以编写常规的 Groovy 代码,并在打开
script
块后使用 Groovy 为您提供的大部分功能。
至于是否可以删除脚本块取决于您是否在管道中使用了常规的 Groovy 代码。例如,您是否使用过
def
关键字来定义变量?如果是这样,那么您无法删除脚本块,因为它是脚本化管道的一部分。