gitlab-runner配置

昨天不知道什么原因,我的gitlab-runner不能正常工作了,所以导致我开始认真研究了一下如何配置gitlab-runner,但是其过于复杂,由于当前还要学习,所以记录解决问题后的设置,同时参考文档Registering runners (deprecated)以后逐步完善理解,因为我还计划未来的编程工作在gitlab上自动化完成,所以这个配置工作必须要学好。

2022年11月12日 由于我为了方便自动化配置,所以在配置脚本中以命令行的方式实现注册gitlab-runner的过程。 2024年12月06日, 重新注册新的 gitlab-runner 时,发现注册的非交互命令发生的变化,参考 Migrating to the new runner registration workflow 做出修改。为了避免命令修改的麻烦,也可以采用手动直接输入命令sudo gitlab-runner register 采用交互方式配置。

In GitLab 15.10 and later, you create the runner and some of the attributes in the UI, like the tag list, locked status, and access level. In GitLab 15.11 and later, these attributes are no longer accepted as arguments to register when a runner authentication token with the glrt- prefix is specified.

Using registration tokens after GitLab 17.0
1
2
3
4
5
6
7
8
9
sudo gitlab-runner register \
--non-interactive \
--executor "shell" \
--url "https://gitlab.com/" \
--token "REDACTED"

sudo systemctl enable gitlab-runner
sudo gitlab-runner start
echo "gitlab-runner配置完毕!"
Example command for GitLab 15.9:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
sudo gitlab-runner register \
--non-interactive \
--url "https://gitlab.com/" \
--registration-token "GR1348941HKwAt771GhzqQ1F893KY" \
--executor "shell" \
--description "thinkpad-diary-runner" \
--maintenance-note "Only for hexo diary writing" \
--run-untagged="true" \
--locked="false" \
--access-level="not_protected"

sudo systemctl enable gitlab-runner
sudo gitlab-runner start
echo "gitlab-runner配置完毕!"

在注册gitlab-runner前需要先确认原来的gitlab-runner已经删除,因为同一台机器配置两个gitlab-runner后,如果不配置标签则gitlab不能分辨使用哪一个gitlab-runner,这将导致问题,这是之前在核科院电脑上遇到过的问题。删除方法为

1
sudo gitlab-runner unregister --all-runners

注意:有时候使用上述命令不能确保一定能够删除本机所有的gitlab-runner , 这时需要修改配置文件~/.gitlab-runner/config.toml,手动删除多余的gitlab-runner 。 2023年02月13日 核科院办公室

2023年06月08日星期四晴北京市北京师范大学, 最近我的工作目录中总是莫名的出现两个文件夹buildscache,且其不固定,研究后发现它是gitlab-runner运行后的产物,于是研究后决定修复这个问题,将这两个文件夹建立在.gitlab-runner目录下,于是修改文件~/.gitlab-runner/config.toml

~/.gitlab-runner/config.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
concurrent = 1
check_interval = 0
shutdown_timeout = 0

[session_server]
session_timeout = 1800

[[runners]]
name = "dell-diary-runner"
url = "https://gitlab.com/"
id = 21102829
token = "xYxVxsxLsfExPBSzCiyJ"
token_obtained_at = 2023-02-13T13:08:57Z
token_expires_at = 0001-01-01T00:00:00Z
executor = "shell"
builds_dir = "/home/feng/.gitlab-runner/builds"
cache_dir = "/home/feng/.gitlab-runner/cache"
[runners.custom_build_dir]
[runners.cache]
MaxUploadedArchiveSize = 0
[runners.cache.s3]
[runners.cache.gcs]
[runners.cache.azure]