摘自:https://blog.csdn.net/chqaz123/article/details/131029045

在运行runner的机子上,配置SSH密钥

1
2
3
git config --global user.name "输入你的用户名"
git config --global user.email "输入你的邮箱"
ssh-keygen -t rsa -C "邮箱名称"

该过程禁止设置密码

复制用户目录下id_rsa.pub的内容

将该数据填入GitLab配置公钥置处

下载GitLab Runner

下载GitLab Runner二进制文件,新建一个文件夹(不要有中文),并将二进制文件放入该文件夹,重命名为“gitlab-runner.exe”

执行部署安装指令

如果代码没有子模块

直接开始运行runner,切记使用管理员权限

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

如果代码有子模块

必须在install的时候输入当前机子上的用户账户和有效密码,用于使用本机上的SSH密钥

否则会出现以下错误,无法拉取子模块

1
2
3
4
Host key verification failed. fatal: Could not read from remote repository.

.\gitlab-runner.exe install --user ENTER-YOUR-USERNAME --password ENTER-YOUR-PASSWORD
.\gitlab-runner.exe start

如果遇到类似账户名不可用之类的错误,尝试在用户名前添加 .\

1
.\gitlab-runner.exe install --user ".\ENTER-YOUR-USERNAME" --password "ENTER-YOUR-PASSWORD"

如果遇到:Failed to start GitLab Runner: The service did not start due to a logon failure.

1
2
3
4
5
6
7
8
当想要执行服务的用户没有 SeServiceLogonRight 权限的时候会发生这个错误。在这种情况下,您需要为选中的用户添加此 权限,然后重启服务。

访问 Control Panel(控制面板) > System and Security(系统和安全) > Administrative Tools(Windows工具 或 管理工具)。
打开 Local Security Policy (本地安全策略)工具。(注意:家庭版没有该功能!!!)
在左侧列表中选择 Security Settings > Local Policies (本地策略)> User Rights Assignment(用户权限分配)。
在右侧列表中打开 Log on as a service(作为服务登录)。
单击 Add User or Group… 按钮。
添加用户(”手动” 或使用 Advanced… 按钮)并应用设置。

输入本机上的用户名

家庭版添加本地安全策略功能

教你如何在win11家庭版中添加【本地安全策略】

1
2
3
4
5
6
7
8
9
10
@echo off

pushd "%~dp0"

dir /b C:\Windows\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientExtensions-Package~3*.mum >List.txt

dir /b C:\Windows\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientTools-Package~3*.mum >>List.txt
for /f %%i in ('findstr /i . List.txt 2^>nul') do dism /online /norestart /add-package:"C:\Windows\servicing\Packages\%%i"

pause

新建文本,填入上面的内容,后缀名修改成.cmd,用管理员权限运行

修改config.toml

默认是pwsh,需要修改为powershell

打开runner文件夹下的config.toml,修改shell = “powershell”

然后重启.\gitlab-runner.exe restart

使用管理员权限运行命令行

1
.\gitlab-runner.exe register

执行“register”命令,URL和token取自GitLab中对应项目中CI/CD中的Runner参数,tags和描述后面可修改

刷新页面,出现可用的指定Runner