2017-06-16 139 views
1

我正在学习Jenkins管道脚本。 我现在正在努力平行地做事情。我尝试了一些语法,但每次我得到并行Jenkins管道

Nothing to execute within stage "Static Checks" 

这是我最后一次尝试:

stage('Static Checks'){ 
      steps{ 
       parallel ("cpp_check":{ 
         node('cppcheck'){ 
          bat '%CPP_CHECK%\\cppcheck.exe -j 4 --quiet --enable=warning,performance,portability --inline-suppr --xml --xml-version=2 src\\Cables src\\PD src\\DataAccess 2> cppcheck-result.xml' 
          checkstyle canComputeNew: false, defaultEncoding: '', healthy: '', pattern: 'cppcheck-result.xml', unHealthy: '' 
         } 
        }, "clock"{ 
         node('clock'){ 
          bat '%CLOCK%\\cloc-1.72.exe --by-file --xml --exclude-ext=pro,pri,ts --out=cloc.xml src/' 
         } 
        } 
       ) 
      } 
     } 

此刻,真的很令人困惑,因为有不同的(旧)语法这么多教程。他们中的大多数都不在使用实际的插件。

所以在普遍的问题是:

  • 如何执行并行阶段?
  • 如何执行并行步骤?

回答

3

您在"clock"后丢失冒号狗狗。你真的很贴心。 :)这里是完整的验证Jenkinsfile:

pipeline { 
    agent { label 'docker' } 
    stages { 
    stage('Static Checks') { 
     steps { 
     parallel (
      "cpp_check": { 
      node('cppcheck') { 
       bat '%CPP_CHECK%\\cppcheck.exe -j 4 --quiet --enable=warning,performance,portability --inline-suppr --xml --xml-version=2 src\\Cables src\\PD src\\DataAccess 2> cppcheck-result.xml' 
       checkstyle canComputeNew: false, defaultEncoding: '', healthy: '', pattern: 'cppcheck-result.xml', unHealthy: '' 
      } 
      }, 
      "clock": { 
      node('clock') { 
       bat '%CLOCK%\\cloc-1.72.exe --by-file --xml --exclude-ext=pro,pri,ts --out=cloc.xml src/' 
      } 
      } 
     ) 
     } 
    } 
    } 
} 

你必须包括你的并行任务作为一个阶段内的步骤,据我所知;你不能并行运行舞台。享受管道。 :)

+0

谢谢,现在它工作。 –

+0

很酷。不要害怕接受答案。 :d – burnettk