偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

如何使用 GitLab CI/CD 觸發(fā)多項(xiàng)目管道

開發(fā) 架構(gòu)
在GitLab CI/CD中,在每個(gè)項(xiàng)目的.gitlab-ci.yml文件中定義了管道及其組件作業(yè)和階段。該文件是項(xiàng)目存儲(chǔ)庫(kù)的一部分。它具有完整的版本,開發(fā)人員可以使用他們選擇的任何通用IDE對(duì)其進(jìn)行編輯。

持續(xù)集成(CI)是在將代碼合并到master分支之前自動(dòng)進(jìn)行代碼構(gòu)建和測(cè)試的實(shí)踐。這使開發(fā)人員可以及早的發(fā)現(xiàn)錯(cuò)誤和頻繁地合并代碼,同時(shí)降低了將新錯(cuò)誤引入主源代碼存儲(chǔ)庫(kù)的風(fēng)險(xiǎn)。

代碼運(yùn)行CI之后,在實(shí)時(shí)環(huán)境中部署和運(yùn)行測(cè)試很重要。從CI過(guò)渡到持續(xù)交付和部署(CD)是DevOps成熟的下一步。再次部署然后進(jìn)行測(cè)試,可以將一個(gè)項(xiàng)目中的代碼與其他組件和服務(wù)一起進(jìn)行測(cè)試,而其他組件和服務(wù)可以在其他項(xiàng)目中進(jìn)行管理。

為什么需要驗(yàn)證代碼關(guān)聯(lián)的其他組件 ?

一個(gè)很好的例子可能是微服務(wù)架構(gòu)。通常,在不同的項(xiàng)目中管理不同的微服務(wù)-每個(gè)微服務(wù)都有自己的存儲(chǔ)庫(kù)和管道。不同的團(tuán)隊(duì)負(fù)責(zé)不同的微服務(wù)及其管道配置也很常見。作為開發(fā)人員,您將需要確認(rèn)您的代碼更改不會(huì)破壞從屬微服務(wù)的功能。因此,除了項(xiàng)目測(cè)試之外,您還需要在那些微服務(wù)上執(zhí)行測(cè)試。

跨項(xiàng)目管道

在運(yùn)行項(xiàng)目管道時(shí),您還希望觸發(fā)跨項(xiàng)目管道,該管道最終將部署并測(cè)試所有相關(guān)微服務(wù)的最新版本。為了實(shí)現(xiàn)此目標(biāo),您需要一種簡(jiǎn)單,靈活和方便的方式來(lái)觸發(fā)其他管道,并將其作為項(xiàng)目CI的一部分。通過(guò)在CI配置文件中簡(jiǎn)單地添加觸發(fā)作業(yè),GitLab CI/CD提供了這種運(yùn)行跨項(xiàng)目管道的簡(jiǎn)便方法。

GitLab CI/CD配置文件

在GitLab CI/CD中,在每個(gè)項(xiàng)目的.gitlab-ci.yml文件中定義了管道及其組件作業(yè)和階段。該文件是項(xiàng)目存儲(chǔ)庫(kù)的一部分。它具有完整的版本,開發(fā)人員可以使用他們選擇的任何通用IDE對(duì)其進(jìn)行編輯。他們是自助服務(wù),因此不必要求系統(tǒng)管理員或DevOps團(tuán)隊(duì)對(duì)管道配置進(jìn)行更改。該.gitlab-ci.yml文件定義管道的結(jié)構(gòu)和順序,并確定使用GitLab Runner(運(yùn)行作業(yè)的代理)執(zhí)行哪些操作,以及在遇到特定條件(例如流程成功或失?。r(shí)做出哪些決定。

添加跨項(xiàng)目管道觸發(fā)作業(yè)

從GitLab 11.8開始,GitLab提供了新的CI/CD配置語(yǔ)法,用于觸發(fā)跨項(xiàng)目管道。以下代碼說(shuō)明了配置bridge作業(yè)以觸發(fā)下游管道:

//job1 is a job in the upstream project
deploy:
stage: Deploy
script: this is my script

//job2 is a bridge job in the upstream project which triggers cross-project pipeline
Android:
stage: Trigger-cross-projects
trigger: mobile/android

在上面的示例中,一旦部署作業(yè)在部署階段成功完成,則將啟動(dòng)Android作業(yè)。該作業(yè)的初始狀態(tài)為待定。GitLab將在mobile/android項(xiàng)目中創(chuàng)建一個(gè)下游管道,一旦創(chuàng)建管道,Android作業(yè)將成功。在這種情況下,mobile/android是該項(xiàng)目的完整路徑。

創(chuàng)建上游管道的用戶需要具有對(duì)下游項(xiàng)目(在這種情況下為mobile/android)的訪問(wèn)權(quán)限。如果找不到下游項(xiàng)目,或者用戶無(wú)權(quán)在此處創(chuàng)建管道,則Android作業(yè)將被標(biāo)記為失敗。

從上游管道圖瀏覽到下游

GitLab CI/CD使可視化管道配置成為可能。在下圖中,構(gòu)建,測(cè)試和部署階段是上游項(xiàng)目的一部分。一旦部署作業(yè)成功,將并行觸發(fā)四個(gè)其他項(xiàng)目,您將能夠通過(guò)單擊下游作業(yè)之一來(lái)瀏覽到它們。

圖片

在下圖中,可以看到下游管道?,F(xiàn)在,我們可以向左滾動(dòng)到上游管道,向右滾動(dòng)回到下游管道,或者選擇另一個(gè)下游管道。

圖片

指定下游管道分支

可以指定下游管道將使用的分支名稱:

trigger:
project: mobile/android
branch: stable-11-2

使用project關(guān)鍵字指定下游項(xiàng)目的完整路徑。使用branch關(guān)鍵字指定分支名稱。在創(chuàng)建下游管道時(shí),GitLab將使用當(dāng)前在分支的HEAD上的提交。

將變量傳遞到下游管道

有時(shí)您可能想將變量傳遞到下游管道。您可以使用variables關(guān)鍵字來(lái)執(zhí)行此操作,就像定義常規(guī)作業(yè)時(shí)一樣。

Android:
variable:
ENVIRONMENT: ‘This is the variable value for the downstream pipeline’
stage: Trigger-cross-projects
trigger: mobile/android

ENVIRONMENT變量將傳遞到下游管道中定義的每個(gè)作業(yè)。當(dāng)GitLab Runner選擇工作時(shí),它將作為環(huán)境變量使用。

該.gitlab-ci.yml文件定義CI/CD階段的順序,要執(zhí)行的作業(yè)以及在什么條件下運(yùn)行或跳過(guò)作業(yè)的執(zhí)行。在trigger該文件中添加帶有關(guān)鍵字的"bridge作業(yè)" 可用于觸發(fā)跨項(xiàng)目管道。我們可以將參數(shù)傳遞給下游管道中的作業(yè),甚至可以定義下游管道將使用的分支。

管道可以是具有許多順序和并行作業(yè)的復(fù)雜結(jié)構(gòu)組成,并且正如我們剛剛了解的那樣,有時(shí)它們可以觸發(fā)下游管道。為了更容易理解管道(包括其下游管道)的流程,GitLab提供了用于查看管道及其狀態(tài)的管道圖。

圖片

責(zé)任編輯:姜華 來(lái)源: DevOps云學(xué)堂
相關(guān)推薦

2022-02-22 09:00:00

軟件開發(fā)CI/CD 管道工具

2020-12-15 16:13:21

DevSecOpsCICD

2023-01-30 15:55:08

2020-10-21 14:10:28

工具測(cè)試開發(fā)

2023-02-19 15:28:39

CI/CD 管道集成開發(fā)

2022-05-19 09:00:00

安全CI/CD工具

2021-01-21 06:06:30

Jenkins分支管道CI

2021-07-02 16:30:01

CICDDevOps

2023-05-04 16:03:50

KubernetesCI/CD集成

2024-10-12 14:36:34

2018-08-24 09:00:00

DevOps持續(xù)集成連續(xù)部署

2023-05-24 16:20:39

DevOpsCI/CD 管道軟件開發(fā)

2021-08-31 09:00:00

開發(fā)Azure DevOp集成

2024-11-06 14:40:18

2021-01-11 09:17:49

GitLabCIMonorepoDocker

2019-07-25 10:31:55

AWSDevOps架構(gòu)

2021-03-31 09:00:00

管道集成工具

2023-04-27 08:18:25

GitLab開源

2021-09-26 09:26:46

開發(fā)安全CICD管道

2023-05-09 16:20:54

藍(lán)綠部署CI/CD 管道自動(dòng)化部署
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)