最近要为团队内一个项目搭建持续集成。项目代码托管在公司内部的 GitLab 上,于是很自然的选择使用 GitLab 自带的 CI/CD 功能。
在 GitLab 的 CI/CD 流程中具体执行任务的节点叫做 runner。GitLab 中有两种类型的 runner:
- Shared Runners 由 GitLab 管理员配置的公有 runner。多个项目公用。作为开发人员无需配置,可以直接使用。
- Specific Runners 开发人员为每个代码库单独配置的专属 runner。只能执行所属代码库的任务。需要开发人员手动搭建。
由于我厂的 GitLab 并没有配置任何 Shared Runner。所以只能选择在自己的台式机上手动搭建。
具体流程如下:
Step 1 下载 runner 可执行文件
创建 D:\GitLab-Runner
目录,将刚刚下载好的文件复制到该目录并重命名为 gitlab-runner.exe
。
Step 2 以管理员身份运行 Git Bash
Step 3 访问代码库的配置页获取配置信息
进入代码库主页,依次点击 Settings
=> CI / CD
=> Runners settings
。
这里展开的信息中有两个字段需要我们记下来。分别是一个 URL 和一个 Token。
Step 4 注册 runner
进入 D:\GitLab-Runner
目录执行命令:
./gitlab-runner.exe register
执行完后会进入一个交互式的配置流程,你需要回答以下问题:
Please enter the gitlab-ci coordinator URL
:填入上一步获取的 URLPlease enter the gitlab-ci token for this runner
:填入上一步获取的 TokenPlease enter the gitlab-ci description for this runner
:给你的 runner 起一个名字Please enter the gitlab-ci tags for this runner (comma separated)
:GitLab 允许我们给 runner 设置标签,设置好后该 runner 只会执行拥有相同标签的任务。由于我们的 runner 只为我们自己的代码库服务,所以此处不做过多配置。留空即可。Whether to lock Runner to current project
:该 runner 是否应该锁定在当前项目上。由于我们是自己用,选true
即可。Please enter the executor: ssh, docker+machine, docker-ssh+machine, kubernetes, docker, parallels, virtualbox, docker-ssh, shell: docker
:选择任务执行环境,我们选择最简单的shell
。
Step 5 验证服务已启动
register
流程执行完成后,系统服务中会多出一项。
检查该服务状态,确保已启动。
回到第 3 步的页面,刷新。即可看到新配置的 runner。
至此,一个 Specific Runner 的配置就全部完成了。