System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本申請涉及云計算,特別是涉及一種持續集成與部署方法、裝置、計算機設備、計算機可讀存儲介質。
技術介紹
1、devops(development和operations的組合,即開發運維一體化)突出重視軟件開發人員和運維人員的溝通合作,通過自動化流程來使得軟件構建、測試、發布更加快捷、頻繁和可靠。devops理念的踐行基于自動化工具鏈,自動化工具鏈的核心是持續集成與部署裝置,即流水線。但目前還缺乏通用的流水線裝置。
技術實現思路
1、基于此,有必要針對上述技術問題,提供一種簡單通用的持續集成與部署方法、裝置、計算機設備、計算機可讀存儲介質。
2、第一方面,本申請提供了一種持續集成與部署方法,所述方法包括:
3、定義并創建流水線數據模型;所述流水線數據模型中的實體包括流水線、流水線階段和任務,其中,所述流水線包括多個按順序編號的流水線階段,所述流水線階段包括至少一個任務;
4、根據所述流水線數據模型的運行數據,定義并生成每個所述實體對應的實體記錄;
5、在所述流水線數據模型運行的初始階段,基于預設編排順序,分別將流水線記錄、流水線階段記錄、以及屬于第一個流水線階段的任務記錄插入至所述流水線數據模型中;
6、基于第一定時任務,查詢是否存在待執行的任務記錄,在確定存在所述待執行的任務記錄的情況下,將所述待執行的任務記錄對應的所述任務提交給執行器,并將所述待執行的任務記錄更新為執行中;
7、定時獲取執行中的任務記錄對應的任
8、在其中一個實施例中,所述基于預設編排順序,分別將流水線記錄、流水線階段記錄、以及屬于第一個流水線階段的任務記錄插入至所述流水線數據模型中,包括:
9、獲取流水線信息;
10、根據所述流水線信息,向所述流水線數據模型中插入所述流水線記錄;
11、獲取所有的流水線階段信息;
12、依次遍歷每個所述流水線階段,根據所述流水線階段信息,向所述流水線數據模型中插入對應的所述流水線階段記錄;
13、在遍歷到的流水線階段為第一個流水線階段的情況下,獲取所述第一個流水線階段對應的任務信息,根據所述任務信息,向所述流水線數據模型中插入所述任務記錄。
14、在其中一個實施例中,所述定時獲取執行中的任務記錄對應的任務實際執行狀態,根據所述任務實際執行狀態依次更新所述執行中的任務記錄、目標流水線階段記錄和目標流水線記錄,包括:
15、基于第二定時任務,查詢是否存在所述執行中的任務記錄;
16、在確定存在所述執行中的任務記錄的情況下,依次遍歷每個所述執行中的任務記錄;
17、針對每個所述執行中的任務記錄,調用所述執行器獲取所述任務實際執行狀態,并根據所述任務實際執行狀態,更新所述任務記錄;
18、根據所述任務記錄,更新所述目標流水線階段記錄;
19、根據所述流水線階段記錄,更新所述目標流水線記錄。
20、在其中一個實施例中,所述根據所述任務記錄,更新所述目標流水線階段記錄,包括:
21、基于第三定時任務,查詢是否存在所述目標流水線階段記錄;
22、在確定存在所述目標流水線階段記錄的情況下,依次遍歷每個所述目標流水線階段記錄;
23、針對每個所述目標流水線階段記錄,獲取所述目標流水線階段記錄對應的任務記錄,在全部所述任務記錄均為完成狀態的情況下,將所述目標流水線階段記錄更新為完成狀態;在存在任務記錄為非完成狀態的情況下,所述目標流水線階段記錄保持不變。
24、在其中一個實施例中,所述完成狀態包括執行失敗和執行成功;
25、所述根據所述流水線階段記錄,更新所述目標流水線記錄,包括:
26、基于第四定時任務,查詢是否存在目標流水線記錄;
27、在確定存在所述目標流水線記錄的情況下,依次遍歷每個所述目標流水線記錄;
28、針對每個所述目標流水線記錄,獲取所述目標流水線記錄對應的流水線階段記錄,在全部所述流水線階段記錄均為完成狀態,或者,存在所述流水線階段記錄為執行失敗的情況下,將所述目標流水線記錄更新為完成狀態;在存在所述流水線階段記錄為非完成狀態的情況下,所述目標流水線記錄的記錄狀態保持不變。
29、在其中一個實施例中,在基于預設編排順序,分別將流水線記錄、流水線階段記錄、以及屬于第一個流水線階段的任務記錄插入至所述流水線數據模型中之后,所述方法還包括:
30、基于第五定時任務,查詢是否存在滿足預設條件的待插入的任務;
31、在確定存在所述待插入的任務記錄的情況下,根據所述待插入的任務生成待插入的任務記錄,依次將所述待插入的任務記錄加入至所述流水線數據模型中。
32、第二方面,本申請還提供了一種持續集成與部署裝置,所述裝置包括:
33、模型創建模塊,用于定義并創建流水線數據模型;所述流水線數據模型中的實體包括流水線、流水線階段和任務,其中,所述流水線包括多個按順序編號的流水線階段,所述流水線階段包括至少一個任務;
34、記錄生成模塊,用于根據所述流水線數據模型的運行數據,定義并生成每個所述實體對應的實體記錄;以及在所述流水線數據模型運行的初始階段,基于預設編排順序,分別將流水線記錄、流水線階段記錄、以及屬于第一個流水線階段的任務記錄插入至所述流水線數據模型中;
35、任務執行模塊,用于基于第一定時任務,查詢是否存在待執行的任務記錄,在確定存在所述待執行的任務記錄的情況下,將所述待執行的任務記錄對應的所述任務提交給執行器,并將所述待執行的任務記錄更新為執行中;
36、記錄維護模塊,用于定時獲取執行中的任務記錄對應的任務實際執行狀態,根據所述任務實際執行狀態依次更新所述執行中的任務記錄、目標流水線階段記錄和目標流水線記錄;其中,所述目標流水線階段記錄為處于非完成狀態的流水線階段記錄;所述目標流水線記錄為處于非完成狀態的流水線記錄。
37、在其中一個實施例中,持續集成與部署裝置還包括:
38、任務插入模塊,用于基于第五定時任務,查詢是否存在滿足預設條件的待插入的任務;在確定存在所述待插入的任務的情況下,根據所述待插入的任務生成待插入的任務記錄,依次將所述待插入的任務記錄加入至所述流水線數據模型中。
39、第三方面,本申請還提供了一種計算機設備,包括存儲器和處理器,所述存儲器存儲有計算機程序,所述處理器執行所述計算機程序時實現上述任一實施例提供的持續繼承與部署方法。
40、第四方面,本申請還提供了一種計算機可讀存儲介質,其上存儲有計算機程序,所述計算機程序被處理器執本文檔來自技高網...
【技術保護點】
1.一種持續集成與部署方法,其特征在于,所述方法包括:
2.根據權利要求1所述的方法,其特征在于,所述基于預設編排順序,分別將流水線記錄、流水線階段記錄、以及屬于第一個流水線階段的任務記錄插入至所述流水線數據模型中,包括:
3.根據權利要求1所述的方法,其特征在于,所述定時獲取執行中的任務記錄對應的任務實際執行狀態,根據所述任務實際執行狀態依次更新所述執行中的任務記錄、目標流水線階段記錄和目標流水線記錄,包括:
4.根據權利要求3所述的方法,其特征在于,所述根據所述任務記錄,更新所述目標流水線階段記錄,包括:
5.根據權利要求3所述的方法,其特征在于,所述完成狀態包括執行失敗和執行成功;
6.根據權利要求1所述的方法,其特征在于,在基于預設編排順序,分別將流水線記錄、流水線階段記錄、以及屬于第一個流水線階段的任務記錄插入至所述流水線數據模型中之后,所述方法還包括:
7.一種持續集成與部署裝置,其特征在于,所述裝置包括:
8.根據權利要求7所述的持續集成與部署裝置,其特征在于,所述裝置還包括:
>9.一種計算機設備,包括存儲器和處理器,所述存儲器存儲有計算機程序,其特征在于,所述處理器執行所述計算機程序時實現權利要求1至6中任一項所述的方法的步驟。
10.一種計算機可讀存儲介質,其上存儲有計算機程序,其特征在于,所述計算機程序被處理器執行時實現權利要求1至6中任一項所述的方法的步驟。
...【技術特征摘要】
1.一種持續集成與部署方法,其特征在于,所述方法包括:
2.根據權利要求1所述的方法,其特征在于,所述基于預設編排順序,分別將流水線記錄、流水線階段記錄、以及屬于第一個流水線階段的任務記錄插入至所述流水線數據模型中,包括:
3.根據權利要求1所述的方法,其特征在于,所述定時獲取執行中的任務記錄對應的任務實際執行狀態,根據所述任務實際執行狀態依次更新所述執行中的任務記錄、目標流水線階段記錄和目標流水線記錄,包括:
4.根據權利要求3所述的方法,其特征在于,所述根據所述任務記錄,更新所述目標流水線階段記錄,包括:
5.根據權利要求3所述的方法,其特征在于,所述完成狀態包括執行失敗和執行成功;
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。