2017-06-16 140 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