就Groovy而言,什么是Jenkins舞台?

时间:2019-05-23 16:22:14

标签: jenkins groovy

我试图弄清楚Grooy语法的阶段。那是什么语法:

stage 'stage 1'
    statement 1
    statement 2
    statement n

stage 'stage 2'
    statement 1
    statement 2
    statement n

还是我认为这是创建舞台的较新方法?

stage ('stage'){
    statement 1
    statement 2
    statement n
}

第一个代码块几乎看起来像labeled statements,但在名称后缺少冒号。

如果我想在Groovy中做这样的事情,我该怎么做?

我是詹金斯和Groovy菜鸟。

[试图澄清我的问题]
我想知道在Groovy代码方面什么是阶段构造。

例如,如果我问这个Groovy代码块是什么

def somefnc(){
   ..statements
}

有人会说:“这就是您在Groovy中定义函数的方法,您使用关键字def为函数命名...”

我的问题是什么

stage ('stage'){
    statement 1
    statement 2
    statement n
}

这是Groovy语言的一部分吗?这叫什么?我的理解是,Jenkins文件是Groovy代码。那么,是否有一些Jenkins预处理程序正在运行?还是上述有效的Groovy可以在我的普通Groovy中使用呢?我的意思不是“ stage”,我可以定义什么并拥有一个

steve('some arguments'){
    statments...
}

2 个答案:

答案 0 :(得分:1)

如果函数的最后一个参数是 Closure 类型,你可以在参数后添加闭包 所以:

def stage(String name, Closure body) {
        println "stage(${name})"
        body.call()
    }

可以这样调用:

stage("stage 1"){
   println "inside stage 1"
}

答案 1 :(得分:0)

第二个示例是几乎正确的语法,但缺少steps{}-block。官方Jenkins documentation对于语法和其他问题有很大的帮助。

因此,对于您的示例,如果要在声明性管道中使用阶段,则这将是100%正确的语法(我认为这是您所说的“较新的方式”,“旧方式”将是脚本化的管道) )。

stage ('stage'){
    steps {
       statement 1
       statement 2
       statement n
   }
}