Gitlab持續集成/持續發佈(CI/CD)配置

在使用Gitlab管理源碼的同時,還可以讓其自動構建、測試與發佈,這部分功能與jenkins類似。
但是與Jenkins不同的是:

Jenkins要構建一般是定時或者手動觸發,所以存在代碼未更新,但也在構建,因爲時間到了,或者代碼提交了,未及時構建,需要手動去構建。這一切都是因爲Jenkis不知道代碼變更了,它只是一個集成工具,沒有代碼管理功能。

而Gitlab具有先天優勢,它本身就是一個代碼管理工具,它知道代碼是否更新,所以可以做到只有在代碼更新時纔去構建。

另外Jenkins中的控制檯與Linux的控制檯顯示有些差異,特別是顏色方面的,不知道新版本是否有改善;而gitlab-runner中對控制檯的顯示很友好,可以參見後面的截圖。

一、安裝相應軟件

1.安裝Gitlab,參見前面的博客:Centos 安裝配置gitlab
2.安裝gitlab-runner
同樣可以在清華大學的鏡像中下載:
CentOS 6:gitlab-runner-12.9.0-1.x86_64.rpm 
然後如下圖所示,輸入:

rpm -ivh gitlab-runner-12.9.0-1.x86_64.rpm

如果沒有安裝git,需要先安裝git:

yum install -y git

在這裏插入圖片描述

二、配置

  1. 註冊Runner
    安裝完成gitlab以及gitlab-runner後,在gitlab的Web頁面打開項目的[設置]=>[CI/CD],展開Runner
    在這裏插入圖片描述
    可以看到有以下幾個選擇:
  • 自動設置Runner
    需要安裝和配置Kubernetes集羣,稍複雜
  • 共享Runner
    共享Runner即各個項目都可以使用它來執行作業。
  • 手動設置特定Runner
    項目特用,即只爲該項目服務。
  • 羣組Runner
    羣組特用,即只爲該羣組的項目服務

我們以手動設置特定的Runner爲例,來說明如何配置Runner讓其正常工作。
使用:

gitlab-runner register

或者:

gitlab-ci-multi-runner register

來註冊Runner。

Runtime platform                                    arch=amd64 os=linux pid=16390 revision=4c96e5ad version=12.9.0
Running in system-mode.                            
                                                   
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
http://192.168.1.129/		#輸入gitlab手動設置Runner中的地址,使用上圖中4處按鈕複製的鏈接
Please enter the gitlab-ci token for this runner:
VJzexe7WU6FE4NmJxVJQ  #輸入上圖中5處按鈕複製的令牌
Please enter the gitlab-ci description for this runner:
[localhost.localdomain]:  #Runner描述,可以直接回車使用默認值
Please enter the gitlab-ci tags for this runner (comma separated):
build #Runner的標識,這個很重要,後面要用到
Registering runner... succeeded                     runner=VJzexe7W
Please enter the executor: docker-ssh, shell, ssh, docker-ssh+machine, kubernetes, custom, docker, parallels, virtualbox, docker+machine:
shell #執行環境
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!

在這裏插入圖片描述
註冊成功後,使用

gitlab-runner start

運行。現在可以在Web頁面中看到剛纔添加的Runner:
在這裏插入圖片描述
如果註冊Runner後,想要做一些修改怎麼辦?
可以通過上圖紅框中的鎖後面的書寫按鈕進行修改。
管理員賬號也可以通過導航欄上的[小扳手]進入[管理中心]=>[概覽]=>[Runner],如下圖:
在這裏插入圖片描述
修改完成後記得保存修改。

  1. 添加yml腳本
    Gitlab在作者提交代碼時,會有機制觸發事件,爲了讓代碼執行相應的事件,Gitlab是通過編寫yml腳本來實現的,Gitlab默認的腳本名爲:.gitlab-ci.yml,需要放在項目的根目錄下。
    下面的.gitlab-ci.yml示例爲C++項目的編譯作業:
stages:
    - cleanup
    - build
  
cleanup:
    stage: cleanup
    script:
    - cd Server
    - rm build -rf
    tags:
    - build
    
build:
    stage: build
    script:
    - cd Server
    - mkdir -p build
    - cd build
    - cmake ..
    - make -j2
    tags:
    - build

關於yml的語法可以參考官網。但是需要注意的是一定要指定 tags,以綁定Runner,不然無法執行。
Gitlab有一個語法檢測頁面:
在這裏插入圖片描述
在這裏插入圖片描述

這樣設置後,只要在Gitlab推送後,就會觸發作業,自動清除之前的編譯,然後再重新編譯。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章