Gitlab配置Gitlab-Runner實現簡單的CI/CD

其他博文連接

Gitlab配置Gitlab-Runner實現簡單的CI/CD

配置說明

Gitlab

  • 系統:Ubuntu 16.04 Server
  • 內存:4G
  • IP:192.168.23.100
  • Dokcer Version : 18.09.0

Gitlab Runner

  • 系統:Ubuntu 16.04 Server
  • 內存:4G
  • IP:192.168.23.102
  • Dokcer Version : 18.09.0

安裝Gitlab-Runner

  • 在Gitlab Runner的機器上執行命令
#在ubuntu server16.04版本下使用命令即可安裝
$ sudo wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64

#接着授予可執行權限
$ sudo chmod +x /usr/local/bin/gitlab-runner

#創建一個gitlab-ci用戶
$ sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash

#安裝,並作爲服務啓動
$ sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner

註冊Runner到Gitlab

這部分內容在另一篇博文《GitLab持續集成持續部署(CI&CD)》有提到過,不過之前是使用的shell執行器,這裏改用docker執行器。使用docker執行器能夠對環境進行很好的隔離,其中的具體區別,可參考官方文檔

  • 執行命令
$ sudo gitlab-runner register

會要求輸入gitlab的url和Token.
查找過程如下:
進入倉庫->settings->CI/CD,找到Runner Settings這一項,點擊Expend,即可在Setup a specific Runner manually這項中找到。如下:
在這裏插入圖片描述
其中url和token在圖片中可以找到。

  • 進入註冊流程
    命令輸入完,點擊回車後,會進入註冊步驟,共分爲以下幾步:
    • 輸入Gitlab實例的URL
      • 可在上圖中查看
    • 輸入要註冊的倉庫的Token
      • 可在上圖中查看
    • 輸入Runner的描述
      • 這裏可以隨便輸入
    • 輸入Runner的標籤
      • 這裏也可以隨便輸入
    • 選擇Runner執行器
      • 執行器這裏以Docker爲示例
    • 選擇默認鏡像(Docker執行器)
      • 默認執行器是當在.gitlab-ci.yml中沒有指定鏡像(image)是默認的。因爲我這裏都是對Java代碼進行流水線測試,所以這裏就選取本人倉庫中的一個默認鏡像virtuex/base_java_env:gradle-4.10.2-openjdk-7-openjdk-8-docker-18。Dockerhub的地址爲:https://cloud.docker.com/u/virtuex/repository/docker/virtuex/base_java_env

具體流程如下圖所示:
在這裏插入圖片描述

  • 啓動Gitlab-Runner
    執行下面命令:
$ gitlab-runner run

進入倉庫->settings->CI/CD,找到Runner Settings這一項,點擊Expend,即可看到Gitlab-Runenr的運行狀態
在這裏插入圖片描述

簡單測試

  • 創建Gradle項目
    因爲我們是使用gradle作爲構建工具,所以請先創建一個gradle的項目,如果不會請自行面壁。
  • 在項目的根目錄下創建.gitlab-ci.yml文件,內容暫定如下:
image: virtuex/base_java_env:gradle-4.10.2-openjdk-7-openjdk-8-docker-18

stages:
  - build
  - test

before_script:
  - echo "Restoring Packages..."

build_job:
  stage: build
  script:
  - echo "Release build..."
  except:
  - tags

test_job:
  stage: test
  script:
  - echo "Tests run..."
  - cd cds.ci.test
  - gradle test
  • push代碼到倉庫
    使用以上腳本提交的時候,CI流水線一直處於pending狀態,並且提示:
This job is stuck because the project doesn't have any runners online assigned to it.
Go to Runners page

在這裏插入圖片描述
最後在官網,操作如下:

  • 進入倉庫->settings->CI/CD,找到Runner Settings這一項,點擊Expend

  • 找到對應的Runner點擊配置按鈕
    在這裏插入圖片描述

  • 將“Run untagged jobs”勾選上,保存。
    在這裏插入圖片描述

  • 重新執行即可執行成功,效果如下:
    在這裏插入圖片描述
    在這裏插入圖片描述

本章講解下基本的配置,接下來結合SpringBoot應用進行自動化測試、自動化部署、集成Sonarqube靜態代碼檢查等。

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