windows上安装gitlab-runner

1. 前言

因为需要在Windows上打包Tauri程序, 所以需要一个windows gitlab-runner, 于是有了这篇文章.

2. 准备工作

要在Windows上安装和运行GitLab Runner,您需要:

  • Git,可以从官方网站安装
  • 如果要在用户帐户而不是内置系统帐户下运行,则为用户帐户提供密码。

3. 安装

  • 在系统中的某个位置创建一个文件夹,例如:D:\GitLab-Runner。

  • 下载64位32位的二进制文件,并将其放入您创建的文件夹中。以下假设您已将二进制文件重命名为gitlab-runner.exe(可选)。您可以下载每个可用版本的二进制文件,如Bleeding Edge中所述-下载任何其他版本

  • 关于gitlab-runner与gitlab的兼容性原则,gitlab和gitlab-runner在主版本和小版本(major.minor)保持同步,具有相同主版本和小版本号的gitlab和gitlab-runner兼容性最好, 较老的runner可能可以兼容比較新的gitlab,反之亦然,但是不能完全保证.详情请参考官网关于兼容性原文

  • 请确保限制GitLab Runner目录和可执行文件的写入权限。如果不设置这些权限,普通用户可以用自己的可执行文件替换可执行文件,并使用提升的权限运行任意代码。

  • 安装gitlab runner并设置为服务
    将GitLab Runner作为服务安装并启动。您可以使用内置系统帐户(推荐)或使用用户帐户运行该服务。

    以管理员运行一个powershell终端, 进入刚刚创建的文件夹, 例如:D:\GitLab-Runner

    1
    2
    .\gitlab-runner.exe install
    .\gitlab-runner.exe start

注意这样安装和注册的gitlab runner将以”NT AUTHORITY/System” 用户的身份执行job

3.1. 使用用户帐户运行gitlab-runner服务

3.1.1. Windows 10/11专业版本配置

1
2
3
cd D:\GitLab-Runner
.\gitlab-runner.exe install --user ".\ENTER-YOUR-USERNAME" --password ENTER-YOUR-PASSWORD
.\gitlab-runner.exe start

需要将用户添加到安全组策略.
Go to Control Panel > System and Security > Administrative Tools.
Open the Local Security Policy tool.
Choose the Security Settings > Local Policies > User Rights Assignment on the list on the left.
Open the Log on as a service on the list on the right.
Click the Add User or Group… button.
Add the user (“by hand” or using Advanced… button) and apply the settings.

3.1.2. Windows 10/11家庭版本配置

由于家庭版无法配置安全组策略, 所有即使将GitLab-Runner以普通用户身份设置为服务也启动不了, 所以以下是变通的方式.

仍然以用户身份运行一个powershell终端, 进入刚刚创建的文件夹, 例如:D:\GitLab-Runner
可以先注册gitlab runner

1
2
3
4

cd D:\GitLab-Runner
# 注册gitlab runner
.\gitlab-runner.exe register --url your_gitlab_server_url --registration-token your_token

然后创建快捷方式, 快捷方式内容如下, 并命名为gitlab-runner

1
2
3

D:\GitLab-Runner\gitlab-runner.exe run --working-directory D:\GitLab-Runner --config D:\GitLab-Runner\config.toml --service gitlab-runner --syslog

将快捷方式放到开机启动项, 开机项位置位于C:\Users\<user_name>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

3.2. 注册GitLab Runner

  • 向GitLab-CI注册一个Runner需要两样东西:GitLab-CI的url和注册token。

  • 其中,token是为了确定你这个Runner是所有工程都能够使用的Shared Runner还是具体某一个工程才能使用的Specific Runner。

  • 如果要注册Shared Runner,你需要到管理界面的Runners页面里面去找注册token.

  • 打开gitlab页面menue > admin > Settings > CI/CD > runner registration, 在Setup shared runner一节可以找到相应的url和token

  • 注册完成之后,在页面menue > admin > runner就会多出一条Runner记录

    1
    2
    3

    ./gitlab-runner.exe register --url your_gitlab_server_url --registration-token your_token

4. trouble shooting

当从gitlab pipeline 执行job时, 遇到pwsh找不到的问题

1
ERROR: Job failed (system failure): prepare environment: failed to start process: exec: "pwsh": executable file not found in %PATH%. Check https://docs.gitlab.com/runner/shells/index.html#shell-profile-loading for more information

修改runner的powershell类型, 在runner的配置文件(D:\GitLab-Runner\config.toml) 默认配置的是shell = "pwsh" 将其修改为 shell = "powershell"

5. 关联阅读

gitlab安装升级及迁移

使用gitlab issue board的四种方式

GitLab集成PlantUML

gitlab-runner安装与配置

macOS上安装gitlab-runner安装与配置

fedora上安装gitlab-runner安装与配置

ubuntu上安装gitlab-runner安装与配置

windows上安装gitlab-runner

gitlab CICD基础

6. 参考文章

gitlab-runner安装与配置

windows上安装gitlab-runner提交gitlab自动打包maven包

Install GitLab Runner on Windows