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 | cd D:\GitLab-Runner |
需要将用户添加到安全组策略.
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 |
|
然后创建快捷方式, 快捷方式内容如下, 并命名为gitlab-runner
1 |
|
将快捷方式放到开机启动项, 开机项位置位于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. 关联阅读
6. 参考文章
windows上安装gitlab-runner