0
我们使用jenkins管道dsl作为我们的工作描述。现在我们有这样的事情:跳过jenkins管道中的一个阶段而无需调用代理?
pipeline {
agent none
options {
timestamps()
}
environment {
//SOME ENV VARS
}
stages {
// more stages
stage('stage1'){
when {
expression { env.BRANCH_NAME == 'master' }
}
agent { label 'slave1' }
steps{
//doing stuff
}
}
}
在构建过程中,当主分支建立应该只运行一个阶段,你能想到的在方向上的部署工作什么的。问题是,我们拥有特定标签的代理商的资源是有限的。当我们构建其他分支时,该作业仍然会调用slave1代理,并在分支不是主控之后跳过舞台。这很糟糕,因为当所有slave1代理正在执行主分支作业时,其他作业将不得不等待slave1代理可用才能检查它是否需要运行该阶段。
jenkins管道DSL有没有什么办法可以在不等待slave1代理确定分支的情况下跳过该阶段?
您是否在流水线的顶层声明了'agent none',即*在*'stages'之前? – SevenEleven
是的,我有。见编辑 – Taron
这是多分支管道?如果是这样,请尝试使用'when'branch'master'}' – Nexus