其他博文連接
- Ubuntu Server 16.04LTS 搭建GitLab服務器
- ubuntu server 16.04 使用docker搭建jenkins和sonarqube
- Gitlab配置Gitlab-Runner實現簡單的CI/CD
- Gitlab CI集成sonarqube實現靜態代碼檢查
- gitlab CI中單元測試與集成測試的研究與實踐
- GitLab持續集成持續部署(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實例的URL
具體流程如下圖所示:
- 啓動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靜態代碼檢查等。