本文講述 Gitlab Runner 的各種類別與建立使用方法!!

GitLab CI/CD 的 Runner 是藉由另一台電腦去執行 CI/CD 動作完後再回傳給 GitLab 資訊 gitlab-runner 自架 Gitlab 要使用到 Gitlab CI/CD 功能需安裝 Git-runner 到一台 Server or Container 下去做使用 Install GitLab Runner | GitLab
Gitlab Runner 有三種不同的權限 :

  • Shared runners:可用於 GitLab 實例中的所有組和項目。
  • Group runners:可用於小組中的所有項目和子小組。
  • Specific runners:與特定的項目相關聯。通常,特定的運行器一次用於一個項目。 當你沒有管理 runner 的權限時,可以用這個來建立屬於自己的 gitlab runner
  1. Shared runners (適用範圍 GitLab 上全部的 Groups 與 Projects )
    因為是全域 Runner 所以需要 admin 帳戶來創建 Runner
    Admin Area -> CI/CD -> Runner -> Register an instance runner -> Show runner installation and registration instuctions
    到你安裝 GitLab runner 的地方照著 Command to register runner 執行 \

    Ex:(windows)
    .\gitlab-runner.exe register --url <GitLab_Url> --registration-token <admin_registration_token>
    

    有看到以下代表成功 admin 現在你創新的專案都可以看到這個 Runner p-admin.png

  2. Group runners (這邊建立的是 Group 下所有的 Projects 皆可使用這個 runner) g-runner.png Select your group -> CI/CD -> Runners -> Register an instance runner -> Show runner installation and registration instuctions
    到你安裝 GitLab runner 的地方照著 Command to register runner 執行 \

    Ex:(windows)
    .\gitlab-runner.exe register --url <GitLab_Url> --registration-token <admin_registration_token>
    

    有看到以下代表成功 g-runner-1.png 現在你創新的專案都可以看到這個 Runner g-runner-2.png

  3. Specific runners (專門給某個 Project 去做使用)
    先到 project 下 CI/CD -> Jobs -> Creata CI/CD configuration file
    之後你就能在你的 Project 下看到多了一個 .gitlab-ci.yml 這個就是用來跟 GitLab Runner 你這專案什麼時候會觸發 CI/CD 並且該做什麼動作等等… 0.png 在 Server 中安裝完 GitLab 之後到 Project -> settings -> CI/CD -> Runners 跟著指令下就可以連結起 Gitlab Runner 跟 GitLab 兩者了 1.png 2.png 連接好之後就能看到下面會有多一個 Assigned project runners 這樣就代表有連結成功了 3.png

register 連接說明 :

Enter the GitLab instance URL (for example, https://gitlab.com/):
輸入 GitLab-Url
Enter the registration token:
輸入 admin-registration-token
Enter tags for the runner (comma-separated):
你 CI/CD 是哪個 Tag 才能使用它
Enter optional maintenance note for the runner:
runner 說明
Enter an executor: virtualbox, docker-autoscaler, instance, kubernetes, custom, docker-windows, shell, ssh, docker, parallels, docker+machine:
輸入你要使用的類型

遇到問題:

  1. 無法執行沒有 Tag 的 CI/CD
    先進到 Runner 設定 p1.png Run untagged jobs 打勾 p2.png

  2. Runner 架在 Windows 無法順利執行 Runner
    需修改 GitLab-Runner 資夾下的 config.toml 檔
    “pwsh” -> “powershell”
    p3.png

Reference:
Day04 - GitLab CI 設計出自己的工作流程 - 流水線分析建立 .gitlab-ci.yml 概述

自架GitLab - 為GitLab添加Runner

Gitlab CI/CD 介紹與 Runner 的架設

gitlab runner 的三种类型,创建以及使用

Day 28 GitLab Runner - 安裝起來分配工作吧!

gitlab-runner: prepare environment failed to start process pwsh in windows - Stack Overflow