我的在线管道关闭在共享库存储库中的行为完全不同。为什么?
详细信息:
我正在编写一种将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)。