2017-10-10 40 views
2

我使用詹金斯2.73.1,我试图使用声明詹金斯文件如下定义并行阶段:如何在声明式Jenkinsfile中定义平行阶段?

pipeline { 
    agent any 

    tools { 
     jdk 'JDK8' 
    } 

    options { 
     disableConcurrentBuilds() 
     timestamps() // write timestamps in front of each console line 
    } 

    triggers { 
     // Every minute 
     pollSCM '*/1 * * * *' 
    } 

    stages { 
     stage('Rüsten') { 
      steps { 
       bat "echo Hello" 
      } 
     } 

     stage('Kochen (parallel)') { 

      parallel { 
       stage('Salzen') { 
        steps { 
         bat "echo Hello" 
        }   
       } 
       stage('Rühren') { 
        steps { 
         bat "echo Hello" 
        }   
       } 
       stage('Abschmecken') { 
        steps { 
         bat "echo Hello" 
        }   
       } 
      } 
     } 

     stage('Essen') { 
      steps { 
       bat "echo Hello" 
      } 
     } 
    } 
} 

不幸的是这将导致以下编译错误。

org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: 
WorkflowScript: 25: Unknown stage section "parallel". Starting with version 0.5, steps in a stage must be in a steps block. @ line 25, column 9. 
      stage('Kochen (parallel)') { 
     ^

WorkflowScript: 25: Nothing to execute within stage "Kochen (parallel)" @ line 25, column 9. 
      stage('Kochen (parallel)') { 
     ^

2 errors 

    at org.codehaus.groovy.control.ErrorCollector.failIfErrors(ErrorCollector.java:310) 
    at org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:1085) 
    at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:603) 
    at org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:581) 
    at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:558) 
    at groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:298) 
    at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:268) 
    at groovy.lang.GroovyShell.parseClass(GroovyShell.java:688) 
    at groovy.lang.GroovyShell.parse(GroovyShell.java:700) 
    at org.jenkinsci.plugins.workflow.cps.CpsGroovyShell.doParse(CpsGroovyShell.java:129) 
    at org.jenkinsci.plugins.workflow.cps.CpsGroovyShell.reparse(CpsGroovyShell.java:123) 
    at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.parseScript(CpsFlowExecution.java:517) 
    at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.start(CpsFlowExecution.java:480) 
    at org.jenkinsci.plugins.workflow.job.WorkflowRun.run(WorkflowRun.java:269) 
    at hudson.model.ResourceController.execute(ResourceController.java:97) 
    at hudson.model.Executor.run(Executor.java:419) 
Finished: FAILURE 

然后我发现#1以下question,并试图运用他们的解决方案,但没有为我工作。

有人能告诉我是否可以平行运行阶段或步骤,以及如何用Jenkins 2.73.1(及更高版本)实现它?

回答