Jenkins 使用 Build Flow 插件配置工作流任務依賴


Jenkins 使用 Build Flow 插件配置工作流任務依賴

Jenkins 多任務依賴方式的配置方法目前可以通過MultiJob Project 或者Build Flow 或者Pipleline,或者
多個自由風格的job通過tigger觸發的方式進行依賴關聯。

新建 Build Flow project 工作流,Build Flow的方式配置任務依賴:具體配置需要使用DSL編輯器定義工作流。
Build Flow 可以通過簡單的腳本(Groovy DSL)定義工作流。具體的教程可以參考Build Flow 插件的官方說明文檔:https://wiki.jenkins-ci.org/display/JENKINS/Build+Flow+Plugin
下面是一些常用的配置方法:

##順序執行3個任務:job1,job2,job3
build( "job1" )
build( "job2" )
build( "job3" )
##參數構建:param1是參數名,foo是參數值。
b = build( "job1", param1: "foo", param2: "bar" ) //job1 必須是包含param1,param2的job。
build( "job2", param1: b.build.number )

##獲取環境變量
def revision = b.environment.get( "GIT_REVISION" )

##guard + rescue類似於 java的try +finally;可以在finally做一些清理工作。
guard {
    build( "this_job_may_fail" )
} rescue {
    build( "cleanup" )
}

##忽略某種狀態:
##這里忽略操作可選的狀態有:UNSTABLE < FAILURE < ABORTED
ignore(FAILURE) {
    build( "send_twitter_notification" )
}
## 任務失敗重試:相當於retry-failed-job plugin,
## 重試3次當任務失敗的時候。
retry ( 3 ) {
    build( "this_job_may_fail" )
}

###並發的執行任務:job1,job2,job3 會被並發的執行,job4會在job1,2,3都完成后才執行。
parallel (
    // job 1, 2 and 3 will be scheduled in parallel.
    { build("job1") },
    { build("job2") },
    { build("job3") }
)
// job4 will be triggered after jobs 1, 2 and 3 complete
build("job4")

###與並行插件相比,並行可以用於更復雜的工作流,其中並行分支可以順序鏈接多個作業。
###並行的執行兩組任務,這兩組任務內又是順序執行的。 
###job1A,job1B,job1C 是順序執行的;job2A,job2B,job2C也是順序執行的。

parallel (
    {
        build("job1A")
        build("job1B")
        build("job1C")
    },
    {
        build("job2A")
        build("job2B")
        build("job2C")
    }
)

###給並行任務定義一個名字,利用名字引用執行的狀態。
join = parallel ([
        first:  { build("job1") },
        second: { build("job2") },
        third:  { build("job3") }
])

// now, use results from parallel execution
build("job4",
       param1: join.first.result.name,
       param2: join.second.lastBuild.parent.name)

###可以結合其他業務流程關鍵字:
parallel (
    {
        guard {
            build("job1A")
            build("job1B")
        } rescue {
            build("job1C")
        }
    },
    {
        retry 3, {
            build("job2")
        }
    }
)
##並發里面使用retry。
parallel (
    // job 1, 2 and 3 will be scheduled in parallel.
   {retry(3){
        build("MultiJobTest-step1-1")
    }},
    { build("MultiJobTest-step1-2") }
)
##對一個並發操作進行重試。
retry ( 3 ) {
  parallel (
      // job 1, 2 and 3 will be scheduled in parallel.
     {retry(3){
          build("MultiJobTest-step1-1")
      }},
      { build("MultiJobTest-step1-2") }
  )
}
  • 缺點:該項目前2017年雖然還在維護和更新,但jenkins官網提示該插件是已經是過時的,建議用戶遷移 到Pipeline Plugin插件。
  • 可以使用 Build Graph View Plugin插件展示工作流視圖。下載地址:https://wiki.jenkins-ci.org/display/JENKINS/Build+Graph+View+Plugin (有時:需要重啟Jenkins和tomcat服務,才能正常展示視圖)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM