GitLab CI 持續(xù)集成

GitLab CI是一套持續(xù)集成開發(fā)方案界弧。

什么是持續(xù)集成

在多人協(xié)作開發(fā)中,如果一個人修改了代碼并提交搭综,可能會對其他人的代碼造成影響垢箕,從而導致程序出現(xiàn)bug,持續(xù)集成的目的是讓我們能夠及時的發(fā)現(xiàn)并改正這些bug兑巾,避免bug被累計条获,從而導致代碼最終不可合并。

為了達到這一要求蒋歌,需要做到兩方面:

  • 每完成一個小功能帅掘,就把代碼及時提交到主干,及時暴露問題堂油。
  • 對提交的代碼進行編譯修档、測試、部署等一系列的操作府框,中間任何一步發(fā)生問題吱窝,就通知對應的開發(fā)人員進行修改。

GitLab CI主要是幫助我們將對代碼的編譯迫靖、測試院峡、部署等一系列中間工作自動化掉,提升我們的效率系宜。

GitLab CI的工作原理

如圖照激,當我們提交代碼的時候,GitLab會通知GitLab-CI服務(wù)器中的runner程序盹牧,runner會對我們的代碼進行相應的處理俩垃,一旦處理中發(fā)生錯誤励幼,就會通過發(fā)送郵件等通知到我們,整個的過程我們可以稱為:進行了一次構(gòu)建(Pipeline)口柳。

runner是由gitlab提供的苹粟,我們只需要下載安裝就可以了,下載地址>>啄清。

為了不讓runner的執(zhí)行影響GitLab系統(tǒng)六水,runner需要部署在獨立的服務(wù)器上運行(如上圖中的GitLab-CI服務(wù)器),該服務(wù)器上可以跑多個runner程序辣卒,用于處理不同的構(gòu)建任務(wù)掷贾。

GitLab怎么知道有哪些runner的

安裝了runner之后,我們需要通過向GitLab注冊荣茫,之后GitLab就知道有哪些runner可以使用了想帅,注冊的方式>>

runner怎么知道要跑哪些任務(wù)的

我們需要在項目根目錄當中放置一個.gitlab-ci.yml配置文件啡莉,然后在配置文件中配置上我們需要運行的任務(wù)(比如測試港准、部署等),.gitlab-ci.yml的內(nèi)容形如:

stages:
  - build
  - test
  - deploy

job 1: # 編譯任務(wù)
  stage: build
  script: make build dependencies

job 2: # 編譯任務(wù)
  stage: build
  script: make build artifacts

job 3: # 測試任務(wù)
  stage: test
  script: make test

job 4: # 部署任務(wù)
  stage: deploy
  script: make deploy

在配置文件中有兩個概念我們需要注意一下:stagejob

stage

Stages 表示階段咧欣,我們可以定義多個 Stages浅缸,這些 Stages 會有以下特點:

  • 所有 Stages 會按照順序運行,即當一個 Stage 完成后魄咕,下一個 Stage 才會開始
  • 只有當所有 Stages 完成后衩椒,整個構(gòu)建過程才算成功
  • 如果任何一個 Stage 失敗,那么后面的 Stages 不會執(zhí)行哮兰,該構(gòu)建任務(wù)失敗

因此毛萌,構(gòu)建(Pipeline)和stage的關(guān)系是

+--------------------------------------------------------+
|                                                        |
|  Pipeline                                              |
|                                                        |
|  +-----------+     +------------+      +------------+  |
|  |  Stage 1  |---->|   Stage 2  |----->|   Stage 3  |  |
|  +-----------+     +------------+      +------------+  |
|                                                        |
+--------------------------------------------------------+

job

Jobs 表示構(gòu)建工作,表示某個 Stage 里面執(zhí)行的工作喝滞。我們可以在 Stages 里面定義多個 Jobs阁将,這些 Jobs 會有以下特點:

  • 相同 Stage 中的 Jobs 會并行執(zhí)行
  • 相同 Stage 中的 Jobs 都執(zhí)行成功時,該 Stage 才會成功
  • 如果任何一個 Job 失敗右遭,那么該 Stage 失敗做盅,即該構(gòu)建任務(wù)失敗

所以,Jobs 和 Stage 的關(guān)系圖就是:

+------------------------------------------+
|                                          |
|  Stage 1                                 |
|                                          |
|  +---------+  +---------+  +---------+   |
|  |  Job 1  |  |  Job 2  |  |  Job 3  |   |
|  +---------+  +---------+  +---------+   |
|                                          |
+------------------------------------------+
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末狸演,一起剝皮案震驚了整個濱河市言蛇,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌宵距,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,252評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件吨拗,死亡現(xiàn)場離奇詭異满哪,居然都是意外死亡婿斥,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評論 3 399
  • 文/潘曉璐 我一進店門哨鸭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來民宿,“玉大人,你說我怎么就攤上這事像鸡』钣ィ” “怎么了?”我有些...
    開封第一講書人閱讀 168,814評論 0 361
  • 文/不壞的土叔 我叫張陵只估,是天一觀的道長志群。 經(jīng)常有香客問我,道長蛔钙,這世上最難降的妖魔是什么锌云? 我笑而不...
    開封第一講書人閱讀 59,869評論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮吁脱,結(jié)果婚禮上桑涎,老公的妹妹穿的比我還像新娘。我一直安慰自己兼贡,他們只是感情好攻冷,可當我...
    茶點故事閱讀 68,888評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著遍希,像睡著了一般等曼。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上孵班,一...
    開封第一講書人閱讀 52,475評論 1 312
  • 那天涉兽,我揣著相機與錄音,去河邊找鬼篙程。 笑死枷畏,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的虱饿。 我是一名探鬼主播拥诡,決...
    沈念sama閱讀 41,010評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼氮发!你這毒婦竟也來了渴肉?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,924評論 0 277
  • 序言:老撾萬榮一對情侶失蹤爽冕,失蹤者是張志新(化名)和其女友劉穎仇祭,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體颈畸,經(jīng)...
    沈念sama閱讀 46,469評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡乌奇,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,552評論 3 342
  • 正文 我和宋清朗相戀三年没讲,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片礁苗。...
    茶點故事閱讀 40,680評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡爬凑,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出试伙,到底是詐尸還是另有隱情嘁信,我是刑警寧澤,帶...
    沈念sama閱讀 36,362評論 5 351
  • 正文 年R本政府宣布疏叨,位于F島的核電站潘靖,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏考廉。R本人自食惡果不足惜秘豹,卻給世界環(huán)境...
    茶點故事閱讀 42,037評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望昌粤。 院中可真熱鬧既绕,春花似錦、人聲如沸涮坐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽袱讹。三九已至疲扎,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間捷雕,已是汗流浹背椒丧。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留救巷,地道東北人壶熏。 一個月前我還...
    沈念sama閱讀 49,099評論 3 378
  • 正文 我出身青樓,卻偏偏與公主長得像浦译,于是被迫代替她去往敵國和親棒假。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,691評論 2 361

推薦閱讀更多精彩內(nèi)容

  • 本文以Gitlab來講解Git使用以及持續(xù)集成, 持續(xù)集成采用的是Gitlab CI. 其他代碼托管網(wǎng)站,如Git...
    x1596357閱讀 5,417評論 0 6
  • 使用持續(xù)集成應該是一個軟件開發(fā)工程師的自覺精盅。 ——沃茲基.索德 前言 在實際工作中帽哑,為了防止當前分支大幅度偏離...
    啃手高手閱讀 3,571評論 0 13
  • 現(xiàn)狀 選用gitlab ci作為持續(xù)集成工具 通過分支管理不同階段版本,dev, alpha, beta, rel...
    人生如夢Jerry閱讀 1,907評論 0 0
  • git Git是一個開源的分布式版本控制系統(tǒng)叹俏,可以有效妻枕、高速的處理從很小到非常大的項目版本管理。Git 是 Lin...
    劉曉洋閱讀 1,691評論 0 7
  • 八月 入秋漸涼 混沌 大概是最能形容我此刻生活狀態(tài)的詞 于是 我又想起了你 在一個夜里 我跟豬豬講述了所有我跟你的...
    片兒片兒閱讀 598評論 0 1