Gitlab CI/CD 之 Group Runner

2023/12/02閱讀時間約 6 分鐘
raw-image

前言

上次我們教到 GitLab CI/CD 的 artifacts,今天我們要來講一個叫做 Group Runner,什麼是 Group Runner 我們今天待會會講道。

Gitlab Runner 類型

我們可以看到官網文件,Gitlab 提供了三種 Runner 類型,第一種叫 Shared runners,第二種叫 Group runners,第三種叫 Project runners

raw-image

Shared runners: 也就是我們之前看到 Gitlab 提供的那些 Runner

Project runners: 也就是這個 Runner 設定只能在某一個專案跑

Group runners: 也就是說我會開一個群組,如果有些專案是在這群組的,可以共用這些群組上的 Runner

創建群組

接下來我們來創建一個群組,將我們的專案加入進群組,並且創建一個 Group runner,讓我們的專案可以使用群組上的 Runner,首先先點回去到 Gitlab 首頁->點擊 Groups->然後再點擊 New group

raw-image

接下來在點擊 Create group 進去

raw-image

接下來取名好群組名稱後,按下 Create group 按鈕,就可以成功建立群組

raw-image

建立 Group Runner

接下來我們進到 develop 這個目錄裡面有個 Build->Runner 的最右手邊這裡就有我們的註冊 Group runner 之 token

raw-image

接下來我們來建立 Group Runner,建立方法和之前建立 Project runners 很像再次教大家使用 gitlab-runner,首先先輸入以下指令

gitlab-runner register

在來這裡輸入我們要註冊的 Gitlab 網址

Runtime platform                                    arch=amd64 os=linux pid=96 revision=853330f9 version=16.5.0
Running in system-mode.

Enter the GitLab instance URL (for example, https://gitlab.com/):
http://192.168.18.35

接下來我們輸入要註冊的 Group Runner Token

Enter the registration token:
GR1348941o_zySTzw_HbSJnnyzgiN

接下來我們給這個 Group Runner 一個描述說明我們在做甚麼

Enter a description for the runner:
[4cb49c53cf78]: Group Docker Runner

接下來我們給這個 Group Runner 給一個 tag

Enter tags for the runner (comma-separated):
docker

接下來我們看到這個訊息可以跳過,不太重要

Enter optional maintenance note for the runner:

接下來這一個是我們目標要建立什麼樣子的 Group Runner,在這裡我們先輸入 Docker,我們要建立 Docker Group Runner

WARNING: Support for registration tokens and runner parameters in the 'register' command has been deprecated in GitLab Runner 15.6 and will be replaced with support for authentication tokens. For more information, see https://docs.gitlab.com/ee/ci/runners/new_creation_workflow
Registering runner... succeeded runner=GR1348941o_zySTzw
Enter an executor: custom, docker, parallels, virtualbox, docker-autoscaler, instance, kubernetes, docker-windows, shell, ssh, docker+machine:
docker

最後這裡是說我們這個 Runner 啟動時,我們預設先 Pull 哪個 image,在這裡我們先寫上 alpine

Enter the default Docker image (for example, ruby:2.7):
alpine

遷移專案至群組

接下來我們要將我們上次的 .Net Core Web Api 專案,搬進 develop 這個群組

raw-image

拖到底下會看到一個叫 Transfer project 的東西,我們把專案搬移到 develop 群組

raw-image

實戰應用

接下來我們來使用這個 group runner 去實際應用,我們先來用上次的 .Net Core Web Api 專案,去寫一個 CI/CD 腳本,上傳上去看看結果

image: mcr.microsoft.com/dotnet/sdk:6.0

stages:
- testing

unit-tests:
stage: testing
tags:
- groupdocker
script:
- dotnet test DotNetCoreWebApiCiAndCdCourse.Tests > DotNetCoreWebApiCiAndCdCourse.Tests.txt
artifacts:
paths:
- DotNetCoreWebApiCiAndCdCourse.Tests.txt
expire_in: "30 days"
only:
- main
- develop

可以看到我們成功將這個 group runner 啟動應用,也成功將自動化測試做好

raw-image

相關文獻

Gitlab Runner 提供類型



10會員
48內容數
d3.js 圖形
留言0
查看全部
發表第一個留言支持創作者!