如何解决是否有可能在阶段块中运行groovy方法而不将其包装在steps块中声明性语法
我正在尝试通过常规方法来获取Jenkinsfile以“生成”阶段。我的主要问题是,它不允许您在未将其包装在“ steps”块中的情况下在阶段中运行方法调用,这使得无法将其用于定义使用docker的代理或创建动态阶段(因为在step块中不允许使用它们)。我需要这个的主要原因是因为我们目前拥有的Jenkinsfile有很多阶段(每个步骤都需要一个docker agent / worker),这会导致太多的代码重复,并使维护和添加新内容变得困难。
我的实验文件如下
def generateStage(bar) {
agent {
docker {
image 'ubuntu:latest'
}
}
stage ("${bar}") {
steps {
sh "echo running in ${bar}"
}
}
}
pipeline {
agent any
stages {
stage('Main') {
steps {
generateStage("foo")
}
}
}
}
有没有办法解决这个问题? 当您删除包裹了generateStage(“ foo”)的'steps'块时,Jenkins抛出此错误
Starting with version 0.5,steps in a stage must be in a ‘steps’ block.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。