2017-10-18 147 views
0

我想創造出運行一些煙霧測試,每10分鐘一個cron作業,我seedjob看起來是這樣的:在詹金斯DSL執行cron作業

multiBranchJobs.each { currentJob -> 
    multibranchPipelineJob(currentJob.name) { 
     branchSources { 
      git { 
       remote(currentJob.projectGitUrl) 
       credentialsId(currentJob.credentials) 
       includes(currentJob.includes) 
      } 
     } 
     orphanedItemStrategy { 
      discardOldItems { 
       numToKeep(20) 
      } 
     } 
     triggers { 
      cron "H/5 * * * *" 
      periodic 60 
     } 
    } 
} 

與當前方法的問題是,它會得到只有在檢測到SCM中的變化時才執行,而煙霧測試則不是這種情況。我需要每5分鐘運行一次,而不管源代碼控制中的提交。任何線索?

回答

0

我並不完全知道如何解決你的問題,但我認爲你所擁有的cron觸發器並沒有做你認爲的事情。我認爲這會在多分支索引工作本身上設置這個觸發器。在甚至不是一個選項的UI中。顯然它不會拋出錯誤,但我不得不懷疑它是否實際設置了觸發器。

從多分枝作業創建的作業必須有Jenkinsfile,對嗎?您可以在這些Jenkins文件中設置觸發器。

我還沒有使用代碼構建作業,因此在查看我的答案時請考慮這一點。但它對我來說意味着你在錯誤的地方設置觸發器。

+0

是的,觸發器應該在Jenkinsfile中定義,請參閱https://jenkins.io/doc/book/pipeline/syntax/#triggers – daspilker

+0

將創建的作業更改爲pipelineJob做了竅門,因爲multibranchPipelineJob觸發SCM掃描檢查是否有新的提交。 –