舞台可以独立触发吗?

时间:2019-02-19 15:57:05

标签: git jenkins jenkins-pipeline

对于一个应用程序,我们正在考虑具有三个阶段的单个Jenkins管道。这是一个脚本化管道。


Dev 阶段应该在develop分支的每次最新提交时触发

QA 阶段假设在develop分支从release分支派生之前,在develop分支上的特定提交(准备就绪)上被触发。 / p>

Prod 阶段应在master分支上的release分支上的合并提交时触发。


类似这样的东西:

node('worker_node'){
   stage('Dev-stage'){}
   stage('QA-stage'){}
   stage('Prod-stage'){} 
}

stage(){}是否可以独立触发?

stage('QA-stage'){}应该在stage('Dev-stage'){}之后立即被触发吗?

1 个答案:

答案 0 :(得分:1)

正如评论中提到的@evolutionxbox,这些阶段将始终按顺序运行。理想情况下,您应该针对不同的步骤执行不同的工作,因为如果您永远不会在一项工作中使用所有阶段,那么它将超越阶段的全部目的。您可以根据需要将它们放在一个通用的jenkinsfile中,并且可以将if阻塞在以下阶段:

if(env.PARAM=="Value"){
    stage('required stage'){
        //code
    }
}

或者您可以根据情况在同一文件中调用不同的功能:

stage('common'){
    if(env.PARAM=="Value"){
        commons.funct1()
    }
}

此处commons变量将加载另一个文件(def commons=load('somefile.groovy'))。