简介
对C#程序员来说,基于.NET Framework的程序只能运行在Windows上,我们想自动打包这种程序和发布传统ASP.NET网站,就必须在Windows上运行Gitlab Runner。本文详述了安装、初始配置、故障排查,并共享了我们团队开发的几个命令行程序。
一、安装
安装很简单,从官网拷贝gitlab-runner.exe文件放置在规划的目录下即可。我们拷贝了64位版本放置在x:\gitlab-runner\gitlab-runner.exe。
二、登入Gitlab网站,获取注册Runner的PowerShell
打开您的Gitlab的https://gitlab.company.com/admin/runners/new
三、为6个Runners准备6个配置文件夹
配置文件都放置在x:\gitlab-runner\runners下,在这里并列创建6个文件夹
- x:\gitlab-runner\runners\runner1
- x:\gitlab-runner\runners\runner2
- x:\gitlab-runner\runners\runner3
- x:\gitlab-runner\runners\runner4
- x:\gitlab-runner\runners\runner5
- x:\gitlab-runner\runners\runner6
1、安装Windows服务
以管理员身份启动PowerShell界面,执行下述语句:
PS X:\gitlab-runner\runners> .\gitlab-runner.exe install --service "Gitlab Runner 1" --working-directory ".\runner1" --config ".\runner1\config.toml"
这里着重说明一下:上述命令中的参数,是错误的,必须使用完整的windows路径!!!
执行完上述语句,可以看到我们成功安装了Windows服务安装成功了:
右键查看这个Windows服务,可执行文件的路径如下:
X:\gitlab-runner\runners\gitlab-runner.exe run --working-directory .\runner1 --config .\runner1\config.toml --service "Gitlab Runner 1" --syslog
上述语句显示:
- 工作目录是独立的
- config参数也起了作用,指向了目录下的文件。这个文件是自动生成的
这个时候x:\gitlab-runner\runners文件夹下,自动创建了runner1文件夹,自动生成了config.toml文件,内容如下:
concurrent = 1
check_interval = 0
shutdown_timeout = 0
[session_server]
session_timeout = 1800
2、注册Gitlab Runner
.\gitlab-runner.exe install --name="Gitlab Runner 1" --working-directory="X:\gitlab-runner\runners\runner1" --register --url https://gitlab.company.com --token glrt-abcdefg-hijklmnlopd
执行效果如下:
PS X:\gitlab-runner\runners> .\gitlab-runner.exe register --url https://gitlab.company.com --token glrt-abcdefg-hijklmnlopd --config ".\runner1\config.toml"
Runtime platform arch=amd64 os=windows pid=8632 revision=fe451d5a version=17.1.0
Created missing unique system ID system_id=s_884fa711f358
Enter the GitLab instance URL (for example, https://gitlab.com/):
[https://gitlab.company.com]:
Verifying runner... is valid runner=ytkfGwx6-
Enter a name for the runner. This is stored only in the local config.toml file:
[VMWIN11]: Windows Gitlab Runner 1
Enter an executor: docker+machine, instance, shell, parallels, docker-windows, docker, kubernetes, docker-autoscaler, custom, ssh, virtualbox:
shell
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!
Configuration (with the authentication token) was saved in ".\\runner1\\config.toml"
第一个Gitlab Runner就安装和注册成功了。
四、启动Gitlab Runner
这个时候在Gitlab里,看到Runner虽然注册成功,但是从未联系过服务器:
我们在Windows中查看第一个Gitlab Runner服务的状态:
PS X:\gitlab-runner\runners> .\gitlab-runner.exe status --service "Gitlab Runner 1"
Runtime platform arch=amd64 os=windows pid=2096 revision=fe451d5a version=17.1.0
Gitlab Runner 1: Service has stopped
启动它:
PS X:\gitlab-runner\runners> .\gitlab-runner.exe start --service "Gitlab Runner 1"
Runtime platform arch=amd64 os=windows pid=8080 revision=fe451d5a version=17.1.0
然而并没有启动,这个时候去“计算机管理”的“服务”列表里手动启动,得到如下警告框:
去“事件查看器”得到如下提示:
五、正确结论
安装服务和注册到Gitlab的两条语句,第一条语句中不能用相对目录!
安装成Windows服务,应该使用如下语句:
.\gitlab-runner.exe install --service "Gitlab Runner 1" --working-directory "x:\gitlab-runner\runners\runner1" --config "x:\gitlab-runner\runners\runner1\config.toml"
这里附上“折腾”的时候,写在服务的语句:
.\gitlab-runner.exe uninstall --service "Gitlab Runner 1"
六、基础配置
Windows中Gitlab Runner的配置:shell = "powershell"
Windows中Gitlab Runner的配置:作业日支的中文是乱码
Windows的Gitlab Runner搭配的PowerShell脚本:自动下载Directory.Build.props相关文件
Windows的Gitlab Runner搭配的PowerShell脚本:推送包到NuGet仓库
Windows的Gitlab Runner搭配的PowerShell脚本:自动上传网站并配置IIS
Windows的Gitlab Runner搭配的PowerShell脚本:发布传统ASP.NET Web应用程序
Windows的Gitlab Runner搭配的PowerShell脚本:更新版本号
Windows的Gitlab Runner搭配的PowerShell脚本:执行单元测试
Windows的Gitlab Runner搭配的PowerShell脚本:编译和打包
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类