国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - 編程技術 - 微服務模式下如何實現多模塊并行構建發布

微服務模式下如何實現多模塊并行構建發布

2021-01-07 23:46DevOps云學堂Lizeyang 編程技術

在微服務項目中具有很多個服務模塊,為了便于管理需要將項目規范化,使用GitLabGroup管理整個項目,每個project對應一個微服務,每個微服務對應一個Jenkins job。開始發布的時候需要我們在手動選擇各個服務然后發布。模塊很多的時

微服務模式下如何實現多模塊并行構建發布

微服務項目中具有很多個服務模塊,為了便于管理需要將項目規范化,使用GitLabGroup管理整個項目,每個project對應一個微服務,每個微服務對應一個Jenkins job。開始發布的時候需要我們在手動選擇各個服務然后發布。模塊很多的時候就不太方便了。創建一個Jenkins項目用來統一管理,綁定GitLab group信息,然后調用Gitlab接口獲取project信息。用戶選擇要發布的微服務,然后根據服務名稱并行觸發每個要發布服務的流水線進行構建和發布。

我們先來看看如何使用pipeline中的parallel語法,這里列舉了兩個例子:并行任務、并行階段。

并行任務

首先我們需要定義每個任務的名稱和對應的操作,可以通過一個Map類型參數實現。在這里定義了一個空的map,然后為這個map增加了兩個任務分別為build01和build02,它們的操作是執行shell命令。最后通過parallel運行。

def tasks = [:] 

 

//定義要并行的任務名稱和任務 

tasks["build01"] =  {sh "ls"}  

tasks["build02"] =  {sh "ls"

 

//并行 

parallel tasks 

并行階段

并行stage也是一種經常用到的運行方式,我們可以使用這種方式解決不必要的時間浪費,尤其在各個平臺運行自動化測試的時候,我們不必等到windows平臺驗證完成再進行Linux系統中的驗證。而是直接在各個平臺中同時運行,加快了測試的速度。我們還可以使用failFast參數配置當其中一個任務失敗其他任務是否一樣失敗,參數值為布爾類型(true false)。

這個例子是jenkins官方提供的,大概的內容是并行在不同系統環境下進行自動化測試。

pipeline { 

    agent none 

    stages { 

        stage('Run Tests') { 

            parallel { 

                stage('Test On Windows') { 

                    agent { 

                        label "windows" 

                    } 

                    steps { 

                        bat "run-tests.bat" 

                    } 

                    post { 

                        always { 

                            junit "**/TEST-*.xml" 

                        } 

                    } 

                } 

                stage('Test On Linux') { 

                    agent { 

                        label "linux" 

                    } 

                    steps { 

                        sh "run-tests.sh" 

                    } 

                    post { 

                        always { 

                            junit "**/TEST-*.xml" 

                        } 

                    } 

                } 

            } 

        } 

    } 

主控Job實現

首先我們用靜態數據來存儲要發布的項目名稱存儲為一個List,定義一個Map用來存儲并行任務。定義buildStatus展示項目錯誤信息(這里做了信息格式化)。使用build進行項目觸發。這里會把每個失敗的任務存儲展示到流水線日志中。

def jobs = ["test2","demo-test-service"

def parallelMap = [:] 

def buildStatus = [:] 

 

jobs.each{  

    println(it) 

 

    parallelMap[it] = { 

        try { 

            build job: "${it}",  

            parameters: [string(name'branchName', value: 'Dev')] 

        } catch(e){ 

            println("${it}  " + e) 

            buildStatus[it] = e 

        } 

    } 

 

parallel parallelMap 

 

 

//判斷狀態 

 

for ( i in buildStatus.keySet()){ 

     currentBuild.description = "構建信息" 

     currentBuild.description += ("\n項目名稱->"  + i  + "錯誤信息:->"+ buildStatus[i]) 

運行效果

微服務模式下如何實現多模塊并行構建發布

基本上每個模塊對應一個pipeline項目。有時候我們需要設置一個集中控制項目來根據設置的參數有序觸發各個模塊服務對應的流水線進行發布。在各個模塊之間沒有發布順序的時候,我們可以使用Pipeline的Parallel語法進行項目的并行構建。加快發布速度,減少重復手工操作成本。

原文地址:https://mp.weixin.qq.com/s/Ra6Wq_p8vIKlDjXu2OEVOg

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 一本一道久久精品综合 | 99精品在线观看 | av在线免费观看网站 | 欧美在线观看视频一区二区 | 日韩电影一区二区在线观看 | 北条麻妃99精品青青久久 | 国产成人无遮挡在线视频 | 欧美日韩在线一区二区三区 | 日韩成人免费在线 | 欧美一区二区在线 | 亚洲精品国精品久久99热 | 毛片一级在线 | 国产精品一区二 | 视频一区二区三 | 色接久久| 精品在线一区二区 | 国产一级二级毛片 | 一级片免费视频 | 久久av网站| 曰韩免费视频 | 亚洲欧美日韩在线 | 欧美喷水 | 午夜精品久久 | 亚洲自拍偷拍综合 | 99精品欧美一区二区蜜桃免费 | 欧美日本在线观看 | 成人福利网站 | 久草电影网 | 久久国产精品久久国产精品 | 亚洲电影在线观看 | 久久久久.com | 日韩精品观看 | 亚洲无线看 | 久久久999国产 | 欧美激情精品久久久久久黑人 | 视频一区中文字幕 | 色人在线| 大片免费播放在线观看视频 | 最新黄网 | 蜜桃视频网站在线观看 | 亚洲视频播放 |