GitLab工作流

這篇文章是站在Architect立場粗井,把基本的開發(fā)流程走完。

為什么

為什么要用GitLab刨裆?

當(dāng)前方式:Git + Gerrit + Jekins告唆,編寫代碼和自動化測試是分開的,為什么要分開簇秒?因?yàn)閐eveloper 和 tester 都是有門檻的鱼喉,全棧工程師畢竟是少數(shù),即使都懂,相關(guān)配置也要知道扛禽,意味著需要處理的信息量變大了锋边。

GitLab默認(rèn)把原始功能代碼和自動化測試的代碼集成在一起,對于開發(fā)人員來說编曼,不需要單獨(dú)學(xué)習(xí)怎么去完成自動化測試豆巨,只需要把自己手工測試的步驟寫進(jìn)一個script就可以了,大幅度降低了學(xué)習(xí)成本掐场。

是什么

GitLab 是一個基于 git 的倉庫管理程序往扔,也是一個方便軟件開發(fā)的強(qiáng)大完整應(yīng)用。

簡單的理解:它是GitHub 的企業(yè)版刻肄。GitLab = Git repo + Git Web UI + Gerrit review + Jenkins + Jira + Confluence瓤球。

它具備競爭優(yōu)勢的功能是 Code review + GitLab CI。

因?yàn)樗菃我卉浖瓿闪嗽S多軟件的工作敏弃,所以集成度更高,一些接口不用考慮(如 Gerrit Trigger)噪馏,同時工作模式也有改變(never push to master branch)麦到,原來的一些概念(change, patch set)也沒有了,有了新概念(Fork/Merge Request)欠肾。GitLab CI 不是Jenkins 也沒有插件瓶颠,build 代碼跟源代碼集成在一起,開發(fā)人員可以直接修改刺桃,不用單獨(dú)學(xué)習(xí)怎么使用Jenkins粹淋,降低了學(xué)習(xí)成本。

GitLab 中的一些概念

Fork: GitLab, GitLab 中引入的概念瑟慈,獲取一個獨(dú)立版本的repo

Group - folder桃移,相當(dāng)于目錄,里邊有一些projects

Project: 跟Gerrit 中的Project 概念一致葛碧,git 里面叫 repo

Issue:Jira 中的ticket

Plan:Jira 中的 dashboard借杰,對應(yīng) GitLab 中的 Issue Board

Milestone:Jira 中的 sprint

GitLab flow

GitLab flow是GitLab官方推薦的分支管理策略,Gitlab flow 的最大原則叫做"上游優(yōu)先"(upsteam first)进泼,即只存在一個主分支master蔗衡,它是所有其他分支的"上游"。只有上游分支采納的代碼變化乳绕,才能應(yīng)用到其他分支绞惦。

image

分支約定

臨時分支:在開發(fā)完成會被刪除

  1. 功能分支 feature - 用于新功能的開發(fā),建議以issue-feature-name命名
  2. 修復(fù)分支fix - 用戶bug的修復(fù)洋措,建議以issue-fix-name命名

固定分支

  1. 開發(fā)分支 master - 用于發(fā)布到測試環(huán)境济蝉,上游分支為 featurefix,該分支為受保護(hù)分支
  2. 預(yù)發(fā)分支 pre-production - 用于發(fā)布到預(yù)發(fā)環(huán)境,上游分支為 master
  3. 正式分支 production - 用于發(fā)布到正式環(huán)境堆生,上游分支為 pre-production

Fork repo

fork 是Github专缠,GitLab特有的概念,是把主repo 拉一個到自己的空間里淑仆,開發(fā)人員想怎么改都行涝婉,不會影響原有的repo。實(shí)踐中蔗怠,更多的是用Fork 方式墩弯,這樣會減少branch,降低維護(hù)成本寞射。

測試流程

軟件開發(fā)階段一般如下圖表示渔工,具體的過程在此之上做了簡化。

img

1 網(wǎng)頁上開 issue桥温,會得到一個編號

真實(shí)環(huán)境使用Jira引矩,它更好用,通過配置侵浸,可以跟GitLab集成旺韭。

在這里為了簡化,使用自帶的Issue掏觉。

以root 身份創(chuàng)建issue区端。

image-20200107154925278.png

2 Fork repo

以被分配issue 的賬戶登陸。

image-20200109140515273.png

頁面右上角澳腹,發(fā)現(xiàn)了新 issue 的提醒织盼,點(diǎn)擊進(jìn)去,查看具體信息酱塔。

切換到repo頁面沥邻,fork 它到自己的 namespace。(實(shí)踐中用 fork 而不是 branch延旧,避免分支太多難以維護(hù)谋国。)

3 clone repo

$ git clone git@roy-gitlabce.eastasia.cloudapp.azure.com:royzeng/demo.git

作為測試,隨意修改一些文件

$ echo "process test" >> fork.txt
$ git add .
$ git commit -m "fix #5"

commit message 中的 fix是關(guān)鍵字迁沫,#5 是 issue 的編號芦瘾,它們組合起來就能與 issue 關(guān)聯(lián)起來。

4 提交并push到GitLab倉庫

$ git push origin master

5 運(yùn)行GitLab CI

如果之前寫好了.gitlab-ci.yml 文件集畅,autobuild 就開始了近弟。

image-20200109143904141.png

6 在GitLab上創(chuàng)建一個Merge Request

Pipeline build 成功后,就可以找人來review 代碼了挺智,在 GitLab祷愉,這叫做 Merge Request。

image-20200109144423716.png

下個頁面提供一些具體信息,讓誰來review 代碼二鳄。

image-20200109144603631.png

7 項(xiàng)目管理者進(jìn)行代碼審查

切換用戶赴涵,作為代碼審查的人,會在自己頁面右上角看到 merge request 的圖標(biāo)订讼,點(diǎn)擊它髓窜。

image-20200106153727426.png

Merge Request 頁面包含了許多信息,具體如下

image-20200109150019915.png

接下來看具體的代碼欺殿,這一部分跟Gerrit review 相似寄纵。

image-20200109150556411.png

8 合并到master

image-20200109151519407.png

Merge 之后,回頭去看那個issue 已經(jīng)是 closed 狀態(tài)了脖苏。

9 在master branch 運(yùn)行第二次GitLab CI

image-20200109151643345.png

10 進(jìn)行產(chǎn)品測試

參考文檔

https://slides.com/aleung/gitlab

基于GitLab的工作流程設(shè)計

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末程拭,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子棍潘,更是在濱河造成了極大的恐慌恃鞋,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蜒谤,死亡現(xiàn)場離奇詭異山宾,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)鳍徽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來敢课,“玉大人阶祭,你說我怎么就攤上這事≈备眩” “怎么了濒募?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長圾结。 經(jīng)常有香客問我瑰剃,道長,這世上最難降的妖魔是什么筝野? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任晌姚,我火速辦了婚禮,結(jié)果婚禮上歇竟,老公的妹妹穿的比我還像新娘挥唠。我一直安慰自己,他們只是感情好焕议,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布宝磨。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪唤锉。 梳的紋絲不亂的頭發(fā)上世囊,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天,我揣著相機(jī)與錄音窿祥,去河邊找鬼株憾。 笑死,一個胖子當(dāng)著我的面吹牛壁肋,可吹牛的內(nèi)容都是我干的号胚。 我是一名探鬼主播,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼浸遗,長吁一口氣:“原來是場噩夢啊……” “哼猫胁!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起跛锌,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤弃秆,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后髓帽,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體菠赚,經(jīng)...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年郑藏,在試婚紗的時候發(fā)現(xiàn)自己被綠了衡查。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,577評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡必盖,死狀恐怖拌牲,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情歌粥,我是刑警寧澤塌忽,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站失驶,受9級特大地震影響土居,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜嬉探,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一擦耀、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧甲馋,春花似錦埂奈、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽芹敌。三九已至,卻和暖如春垮抗,著一層夾襖步出監(jiān)牢的瞬間氏捞,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工冒版, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留液茎,地道東北人。 一個月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓辞嗡,卻偏偏與公主長得像捆等,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子续室,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評論 2 348

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