Jenkins内联声明性管道关闭?

时间:2019-02-21 21:51:00

标签: groovy jenkins-pipeline

我的在线管道关闭在共享库存储库中的行为完全不同。为什么?


详细信息:

我正在编写一种将pipeline {}提取到vars文件中的方法,该文件可以被多个作业重复使用。

但是,为了测试事情而不必进行每一个小的语法检查,我尝试首先内联测试一些事情。但是事情的表现有所不同...

这是我的在线测试管道:

#!/usr/bin/env groovy

myPhpDelivery = { Map p = [:] ->
    echo "myPhpDelivery called"
    echo "${p}"

    pipeline {
        agent any

        options {
            buildDiscarder(logRotator(numToKeepStr: '3'))
        }
        environment {
            APP_NAME = "${p.appName}"
        }

        stages {
            stage("skip build?") {
                steps {
                    script {
                        // skipRemainingStages = checkSkipci()
                        skipRemainingStages = false
                        echo "${p}"
                    }
                }
            }
        }
    }
}


myPhpDelivery ( appName: "test-job",
    src: "src/",
    test: [
        test: "test"
    ]
)

位于phpDelivery.groovy文件中作为共享插件的此管道实际上有效。但是,在此行内,它不是。 Jenkins错误:

groovy.lang.MissingPropertyException: No such property: any for class: WorkflowScript

由于它不了解any调用中的agent(如果我将座席转移到舞台中,还有更多)。

我想念这个吗?就像使用共享插件时暗示的缺少上下文一样。

有没有一种方法可以使它在线运行,所以我继续进行测试(老实说,就是学习Groovy)。

0 个答案:

没有答案