建立和使用CI CD管道 譯 原

2022-07-03 23:00:11 字數 3649 閱讀 1716

在gitlab 8.8中引入。

管道是持續整合,交付和部署的頂級元件。

管道包括:

如果有足夠的併發

runners

,則runners

並行執行同一階段中的多個作業

。如果乙個階段的所有工作:

gitlab從中提取

的映象儲存庫,則

可能需要在專案的

「設定」>「儲存庫」>「從遠端儲存庫中提取」>「映象更新的觸發管道」中啟用管道觸發 

。舉個例子,想象乙個由四個階段組成的管道,按以下順序執行:

在gitlab 8.11中引入。

管道可以是具有許多順序和並行作業的複雜結構。

為了更容易理解管道的流程,gitlab具有用於檢視管道及其狀態的管道圖。

管線圖可以以兩種不同的方式顯示,具體取決於您訪問圖表的頁面。

常規管道圖顯示每個階段的作業名稱。

當您在單個管道頁面

上時,可以找到常規管道圖

。例如:

管道迷你圖表占用的空間更少,可以快速通知您所有作業是否通過或出現故障。

導航到以下內容時可以找到管道迷你圖:

管道迷你圖允許您檢視單個提交的所有相關作業以及管道的每個階段的最終結果。

這使您可以快速檢視失敗並修復它。

管道迷你圖中的階段是可折疊的。

將滑鼠懸停在它們上方,然後單擊以展開其作業。

迷你圖迷你圖擴大了

作業排序取決於管道圖的型別。

對於常規管道圖

,作業按名稱排序。

對於管道迷你圖

(在gitlab 9.0中

引入),作業按嚴重性排序,然後按名稱排序。

嚴重性的順序是:

例如:給定管道的總執行時間不包括重試和掛起(排隊)時間。

每項工作都表示為aperiod,其中包括:

乙個簡單的例子是:

在示例中:

在視覺上,它可以被視為:

0  1  2  3  4  5  6  7

aaaaaaa

bbbbbbb

cccc

a,b和c的並集是(1,4)和(6,7)。

因此,總執行時間為:

(4 - 1) + (7 - 6) => 4
在gitlab 12.0中引入。

作業日誌分為可折疊或展開的部分。

在以下示例中:

管道及其元件作業和階段在

.gitlab-ci.yml每個專案的檔案

中定義。

特別是:

有關所有可用的配置選項,請參閱

gitlab ci / cd管道配置參考

。除了配置作業外.gitlab-ci.yml,還可以通過gitlab ui獲得其他配置選項:

在gitlab 8.12中引入。

如果您有許多類似的工作,您的

管道圖將變得冗長且難以閱讀。

出於這個原因,類似的工作可以自動組合在一起。

如果作業名稱以某種方式格式化,它們將在常規管道圖(而不是迷你圖)中摺疊為單個組。

如果您沒有在其中看到重試或取消按鈕,您將知道管道何時對作業進行分組。

將滑鼠懸停在它們上方將顯示分組作業的數量。

單擊以展開它們。

配置分組

在管道配置檔案中

,作業名稱必須包含兩個用以下之一分隔的數字(您甚至可以交替使用它們):

正規表示式:\d+[\s:\/\\]+\d+\s*

分組如何工作

將通過從左到右比較這兩個數字來訂購作業。

您通常希望第乙個是索引,第二個是總數。

例如,以下作業將分組在名為的作業下test

以下作業將分組在乙個名為的作業下test ruby

以下作業將分組到乙個名為的作業中test ruby

gitlab支援配置僅針對合併請求執行的管道。

有關更多資訊,請參閱 

合併請求的管道

。管道狀態和測試覆蓋率報告標記可用於每個專案並可配置。

有關向專案新增管道標記的資訊,請參閱

管道標記

。額外費用

銀不同專案的管道可以組合在一起並視覺化。

有關更多資訊,請參閱

多專案管道

。通常,管道自動執行,一旦建立就不需要干預。

但是,有些情況下您需要與管道進行互動。

這些記錄如下。

可以使用預定義或手動指定的

變數手動執行管道

。如果在管道的正常操作之外需要管道的結果(例如,**構建),則可以執行此操作。

要手動執行管道:

導航到專案的ci / cd>管道。

單擊「 執行管道」按鈕。

在「 執行管道」頁面上:

在「 建立」欄位中

選擇要執行管道的分支。輸入

管道執行所需的

任何環境變數

。單擊「 建立管道」按鈕。

管道將按配置執行作業。

您可以在專案的ci / cd>管道頁面

下找到當前和歷史管道執行 

。單擊管道將顯示為該管道執行的作業。

您還可以通過導航到「 管道」選項卡

來訪問合併請求的管道。

訪問管道時,您可以看到該管道的相關作業。

單擊單個作業將顯示其作業跟蹤,並允許您:

在gitlab 10.7中引入。

當管道出現故障或被允許失敗時,有幾個地方可以快速檢查失敗的原因:

在每個地方,如果將滑鼠懸停在失敗的作業上,您可以看到失敗的原因。

從gitlab 10.8

,您還可以在「作業詳細資訊」頁面上檢視失敗的原因。

在gitlab 8.15中引入。

使用when:manual引數

配置的手動操作

允許您在管道中向前移動之前需要手動互動。

您可以直接從管道圖中執行此操作。

例如,您的管道自動啟動,但需要手動操作才能 

部署到生產環境

。在下面的示例中,

production舞台具有手動操作。

在gitlab 11.4中引入。

如果您不想立即執行作業,可以使用該

when:delayed引數將作業的執行延遲一段時間。

這對於逐步推出新**的定時增量轉出特別有用。

例如,如果您開始推出新**並且:

gitlab提供api端點:

在gitlab 11.11中引入。

使用者單擊此按鈕後,將觸發每個單獨的手動操作並重新整理到更新狀態。

此功能僅適用於:

在受保護的分支

上執行管道時,將強制執行嚴格的安全模型 。僅當

允許使用者

合併或推送

該特定分支時,

才允許在受保護的分支上執行以下操作 

:標記為受保護的變數

只能在受保護的分支上執行的作業訪問,從而防止不受信任的使用者無意中訪問敏感資訊(如部署憑據和令牌)。

運動員標記為保護只能保護分支機構執行的作業,避免不受信任的**要在保護運動員和儲存部署鍵被意外地訪問其他憑證執行。

為了確保在受保護的執行者上執行的作業不會使用常規執行者,必須相應地對其進行標記。

linux有名管道的fifo的建立和使用

include include int mkfifo const char pathname,mode t mode 成功返回0,失敗返回 1並設定errno pathname 命名管道路徑 建立許可權是 mode umask 的有名管道檔案 解決沒有血緣關係之間的程序的通訊 mkfifo 管道名稱...

建立和使用DLL

首先建立個dll工程 win32控制台 dll工程 新增標頭檔案和cpp檔案,如下 ifndef dll test h define dll test h class declspec dllexport ctest endif include dll test.h include ctest ct...

oracle dblink 建立和使用

需求 本地a訪問遠端b。說明 dblinktest dblink名稱,lixu 本地a使用者,t btable 遠端b庫表。1.a 先確定使用者是否有建立dblink的許可權 select from user sys privs where privilege like upper database...