快轉到主要內容

Gitlab Runner

·319 字·2 分鐘

本文講述 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 執行 \

    # Windows 執行
    .\gitlab-runner.exe register --url <GitLab_Url> --registration-token <admin_registration_token>
    

    有看到以下代表成功

    admin
    現在你創新的專案都可以看到這個 Runner
    p-admin

  2. Group runners (這邊建立的是 Group 下所有的 Projects 皆可使用這個 runner)

    g-runner
    Select your group -> CI/CD -> Runners -> Register an instance runner -> Show runner installation and registration instuctions
    到你安裝 GitLab runner 的地方照著 Command to register runner 執行 \

    # Windows 執行
    .\gitlab-runner.exe register --url <GitLab_Url> --registration-token <admin_registration_token>
    

    有看到以下代表成功

    g-runner-1
    現在你創新的專案都可以看到這個 Runner
    g-runner-2

  3. Specific runners (專門給某個 Project 去做使用)
    先到 project 下 CI/CD -> Jobs -> Creata CI/CD configuration file
    之後你就能在你的 Project 下看到多了一個 .gitlab-ci.yml 這個就是用來跟 GitLab Runner 你這專案什麼時候會觸發 CI/CD 並且該做什麼動作等等…

    CI/CD-Jobs
    在 Server 中安裝完 GitLab 之後到 Project -> settings -> CI/CD -> Runners 跟著指令下就可以連結起 Gitlab Runner 跟 GitLab 兩者了
    p-runner-cnt
    p-runner-cli
    連接好之後就能看到下面會有多一個 Assigned project runners 這樣就代表有連結成功了
    cnt-success

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 設定

    edit-runner_1
    Run untagged jobs 打勾
    edit-runner_2

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

    edit-runner_toml

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