【发布时间】:2019-12-31 23:14:58
【问题描述】:
我希望能够根据存储库中 Dockerfile 的存在来选择是否使用 dockerfile 代理执行管道阶段。如果没有Dockerfile,则该阶段应在本地运行。
我尝试了类似的东西
pipeline {
stage('AwesomeStage') {
when {
beforeAgent true
expression { return fileExists("Dockerfile") }
}
agent { dockerfile }
steps {
// long list of awesome steps that should be run either on Docker either locally, depending on the presence of a Dockerfile
}
}
}
但结果是当没有Dockerfile 时,整个stage 被跳过。
是否可以做类似下面的块?
//...
if (fileExists("Dockerfile")) {
agent {dockerfile}
}
else {
agent none
}
//...
【问题讨论】:
标签: jenkins jenkins-pipeline jenkins-groovy