安裝gitlab CI

基本概念

1、CI/CD

CI(Continuous Integradtion)持續(xù)集成缎除,在代碼完善過程中持續(xù)地進(jìn)行代碼的繼承膝但、構(gòu)建以及自動(dòng)化測試等。
CD(Continuous Delivery策泣、Continuous Deployment)持續(xù)交互衙傀、持續(xù)部署,當(dāng)代碼完成后萨咕,可以方便地將新版本部署上線统抬,這樣有利于快速迭代并交互產(chǎn)品。
詳細(xì)查看文章——什么是CI/CD

2危队、GitLab中的CI/CD

GitLab CI/CD是一套基于GitLab的CI/CD系統(tǒng)聪建,開發(fā)人員可以通過.gitlab-ci.yml在項(xiàng)目中配置CI/CD流程,在代碼提交后茫陆,GitLab可以自動(dòng)/手動(dòng)地執(zhí)行任務(wù)金麸,完成CI/CD操作。
在完成GitLab的CI/CD系統(tǒng)時(shí)簿盅,需要安裝gitlab挥下、gitlab-runner兩個(gè)應(yīng)用程序。
1挪鹏、安裝gitlab见秽,查看文章——Linux安裝gitlab代碼倉庫
本文主要講述GitLab中 CI/CD 的安裝和配置。

GitLab中CI/CD相關(guān)概念

概念 含義
pipelines管道 管道是持續(xù)集成讨盒、交付和部署的頂級(jí)組件解取,包含:任務(wù)(Jobs)和階段(stages)
Jobs任務(wù) 定義要做什么,如:編譯或測試代碼的作業(yè)
Stages階段 定義何時(shí)運(yùn)行作業(yè)返顺,如:在編譯代碼的階段之后運(yùn)行測試代碼階段

任務(wù)(Jobs)是被runner執(zhí)行的禀苦,當(dāng)有多個(gè)runners并且同一階段(stage)有多個(gè)任務(wù)(Jobs)時(shí),將并行執(zhí)行這些任務(wù)(Jobs)遂鹊。
當(dāng)一個(gè)階段內(nèi)的所有任務(wù)(Jobs)全部成功執(zhí)行后振乏,管道將執(zhí)行下一個(gè)階段(stage)的任務(wù)(Jobs);當(dāng)一個(gè)階段內(nèi)的任意一個(gè)任務(wù)(Jobs)失敗后秉扑,管道將停止執(zhí)行慧邮。

GitLab安裝和注冊CI/CD

GitLab安裝CI/CD

GitLab安裝CI/CD的官方教程
總結(jié)如下:

# 下載到/usr/local/bin中调限,可以直接在控制臺(tái)輸入命令
wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64

# 分配運(yùn)行權(quán)限
chmod +x /usr/local/bin/gitlab-runner

# 創(chuàng)建用戶
useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash

# 安裝
gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner

# 運(yùn)行
gitlab-runner start

完成上述流程后,沒有發(fā)生錯(cuò)誤即表名安裝成功误澳。

GitLab創(chuàng)建Runner

通過gitlab-runner register命令進(jìn)行創(chuàng)建Runner即可耻矮,過程如下:

1、輸入gitlab的地址
2忆谓、輸入gitlab中runner的token裆装,這里在gitlab中查看,請看下面截圖倡缠。
3哨免、對runner進(jìn)行描述
4、輸入runner的tag
5昙沦、輸入runner的操作信息
6琢唾、輸入執(zhí)行runner的執(zhí)行器類型

截圖如下:


create runner.png

查看token過程1:

查看token1

查看token過程2:如果是admin賬號(hào)登錄的GitLab系統(tǒng),可以輸入以下網(wǎng)址:
http://192.168.10.150:8081/admin/runners
查看token2.png

Runner與項(xiàng)目進(jìn)行關(guān)聯(lián)

當(dāng)創(chuàng)建Runner時(shí)使用的token為項(xiàng)目token時(shí)桅滋,這一步將忽略慧耍。
當(dāng)創(chuàng)建Runner時(shí)使用的token為gitlab的token時(shí),將需要在頁面將項(xiàng)目和Runner進(jìn)行關(guān)聯(lián)丐谋。
進(jìn)入http://192.168.10.150:8081/admin/runners

關(guān)聯(lián)1.png

關(guān)聯(lián)2.png

關(guān)聯(lián)后的項(xiàng)目中的runner顯示:
關(guān)聯(lián)成功.png

GitLab使用CI/CD

GitLab中是通過.gitlab-ci.yml文件使用CI/CD。
.gitlab-ci.yml文件中的內(nèi)容:stages(階段定義)煌珊、variables(變量定義)号俐、cache(緩存定義)、job(任務(wù)定義)定庵、scripts(執(zhí)行內(nèi)容)等吏饿。
詳情見官方文檔

stages階段

使用階段(stages)來定義包含任務(wù)組的階段蔬浙。在作業(yè)中使用 stage 將作業(yè)配置為在特定階段運(yùn)行猪落。
例如:

stages:
  - build
  - test
  - deploy

在stages階段,表明各個(gè)job畴博。

Jobs階段

Jobs階段常用的

before_script

數(shù)組類型笨忌,在script之前運(yùn)行的Linux命令。

tags

數(shù)組類型俱病,使用標(biāo)簽從項(xiàng)目可用的所有運(yùn)行器列表中選擇特定運(yùn)行器官疲。

stage

該值為stages里面的任意一個(gè)值,使用stage來定義一個(gè)job運(yùn)行在哪個(gè)階段亮隙,同一個(gè)stage的job可以并行執(zhí)行

script

數(shù)組類型途凫,使用腳本指定運(yùn)行器要執(zhí)行的命令。

artifacts

使用artifacts組件的作用為保存文件溢吻。

本文介紹前端項(xiàng)目的CI/CD维费,.gitlab-ci.yml文件如下:

stages: # 定義階段
  - install
  - build
  - deploy
  
cache: # 定義緩存路徑,node項(xiàng)目中安裝的依賴路徑
  paths:
    - node_modules
    - build

install-job: # 安裝作業(yè)
  tags: # 與Runner保持一致
    - vue-20200329
  stage: install # 階段與工作關(guān)聯(lián),即上述定義的某個(gè)階段
  script: # 定義運(yùn)行的shell命令
    - pwd
    - npm install

build-job:
  tags:
    - vue-20200329
  stage: build
  script:
    - pwd
    - npm run build
  only: 
    - master
  artifacts:
    paths:
      - dist/

deploy-job:
  tags:
    - vue-20200329
  stage: deploy
  script:
    - echo ${CI_PROJECT_DIR} # 這個(gè)路徑為當(dāng)前的工作目錄犀盟。
    - rm -rf /usr/local/nginx/html/dist
    - cp -a ./dist/ /usr/local/nginx/html/

運(yùn)行結(jié)果如下:


gitlab-ci運(yùn)行結(jié)果.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末而晒,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子且蓬,更是在濱河造成了極大的恐慌欣硼,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,427評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件恶阴,死亡現(xiàn)場離奇詭異诈胜,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)冯事,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門焦匈,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人昵仅,你說我怎么就攤上這事缓熟。” “怎么了摔笤?”我有些...
    開封第一講書人閱讀 165,747評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵够滑,是天一觀的道長。 經(jīng)常有香客問我吕世,道長彰触,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,939評(píng)論 1 295
  • 正文 為了忘掉前任命辖,我火速辦了婚禮况毅,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘尔艇。我一直安慰自己尔许,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,955評(píng)論 6 392
  • 文/花漫 我一把揭開白布终娃。 她就那樣靜靜地躺著味廊,像睡著了一般。 火紅的嫁衣襯著肌膚如雪尝抖。 梳的紋絲不亂的頭發(fā)上毡们,一...
    開封第一講書人閱讀 51,737評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音昧辽,去河邊找鬼衙熔。 笑死,一個(gè)胖子當(dāng)著我的面吹牛搅荞,可吹牛的內(nèi)容都是我干的红氯。 我是一名探鬼主播框咙,決...
    沈念sama閱讀 40,448評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼痢甘!你這毒婦竟也來了喇嘱?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,352評(píng)論 0 276
  • 序言:老撾萬榮一對情侶失蹤塞栅,失蹤者是張志新(化名)和其女友劉穎者铜,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體放椰,經(jīng)...
    沈念sama閱讀 45,834評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡作烟,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,992評(píng)論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了砾医。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拿撩。...
    茶點(diǎn)故事閱讀 40,133評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖如蚜,靈堂內(nèi)的尸體忽然破棺而出压恒,到底是詐尸還是另有隱情,我是刑警寧澤错邦,帶...
    沈念sama閱讀 35,815評(píng)論 5 346
  • 正文 年R本政府宣布探赫,位于F島的核電站,受9級(jí)特大地震影響撬呢,放射性物質(zhì)發(fā)生泄漏期吓。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,477評(píng)論 3 331
  • 文/蒙蒙 一倾芝、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧箭跳,春花似錦晨另、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至屉来,卻和暖如春路翻,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背茄靠。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評(píng)論 1 272
  • 我被黑心中介騙來泰國打工茂契, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人慨绳。 一個(gè)月前我還...
    沈念sama閱讀 48,398評(píng)論 3 373
  • 正文 我出身青樓掉冶,卻偏偏與公主長得像真竖,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子厌小,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,077評(píng)論 2 355

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