目录
- 第一章 – Xcode GitLab_CI_CD
- 第二章 – Xcode GitLab_CI_CD_pipelines
- 第三章 – Xcode GitLab_CI_CD_Jobs
- 第四章 – Xcode GitLab_CI_CD_runners
- 第五章 – Xcode GitLab_CI_CD_gitlab_ci
您可以更改 GitLab Runner 和registered runners的行为。
为此,您需要修改一个名为 的文件config.toml,该文件使用TOML格式。
当您更改大多数选项时,GitLab Runner 不需要重新启动。这包括部分中的[ [ runners ] ]参数和全局部分中的大多数参数,除了listen_address. 如果跑步者已经注册,则无需再次注册。
GitLab Runner 每 3 秒检查一次配置修改,并在必要时重新加载。GitLab Runner 还会重新加载配置以响应SIGHUP信号。
您可以config.toml在以下位置找到该文件:
- /etc/gitlab-runner/当 GitLab Runner 以 root 身份执行时在 *nix 系统上(这也是服务配置的路径)
- ~/.gitlab-runner/当 GitLab Runner 以非 root 身份执行时,在 *nix 系统上
- ./在其他系统上
环境 | 描述 |
---|---|
name | 跑步者的描述。仅供参考。 |
url | GitLab 实例 URL。 |
token | runner的认证token,在runner注册时获取。不一样的注册令牌。 |
tls-ca-file | 使用 HTTPS 时,包含用于验证对等方的证书的文件。请参阅自签名证书或自定义证书颁发机构文档。 |
tls-cert-file | 使用 HTTPS 时,包含与对等方进行身份验证的证书的文件。 |
tls-key-file | 使用 HTT |
如果您使用的是 GitLab Runner Docker 映像,则必须8093通过添加命令-p 8093:8093来公开端口。docker run
该 [ [ runners ] ]部分 每个 [ [ runners ] ]部分定义一个跑步者。
环境 描述 name 跑步者的描述。仅供参考。 url GitLab 实例 URL。 token runner的认证token,在runner注册时获取。不一样的注册令牌。 tls-ca-file 使用 HTTPS 时,包含用于验证对等方的证书的文件。请参阅自签名证书或自定义证书颁发机构文档。 tls-cert-file 使用 HTTPS 时,包含与对等方进行身份验证的证书的文件。 tls-key-file 使用 HTT
全局部分
这些设置是全局的。它们适用于所有跑步者。
环境 | 描述 |
---|---|
concurrent | 限制在所有注册的跑步者中可以同时运行的作业数量。每个 [ [ runners ] ]部分都可以定义自己的限制,但该值会为所有这些值的组合设置最大值。例如,值10表示不超过 10 个作业可以同时运行。0禁止。如果您使用此值,则运行程序进程将退出并出现严重错误。查看此设置如何与 Docker Machine 执行器(用于自动缩放)一起使用。 |
log_level | 定义日志级别。选项有debug、info、warn、error、fatal和panic。此设置的优先级低于命令行参数–debug、-l或设置的级别–log-level。 |
log_format | 指定日志格式。选项有runner、text和json。此设置的优先级低于命令行参数设置的格式–log-format。默认值为runner。 |
check_interval | 定义新作业检查之间的间隔长度(以秒为单位)。默认值为3。如果设置为0或更低,则使用默认值。 |
sentry_dsn | 启用对 Sentry 的所有系统级错误的跟踪。 |
listen_address |
配置示例:
concurrent = 4
log_level = "warning"
log_format示例(截断)
runner
Runtime platform arch=amd64 os=darwin pid=37300 revision=HEAD version=development version
Starting multi-runner from /etc/gitlab-runner/config.toml... builds=0
WARNING: Running in user-mode.
WARNING: Use sudo for system-mode:
WARNING: $ sudo gitlab-runner...
Configuration loaded builds=0
listen_address not defined, metrics & debug endpoints disabled builds=0
[session_server].listen_address not defined, session endpoints disabled builds=0
text
INFO[0000] Runtime platform arch=amd64 os=darwin pid=37773 revision=HEAD version="development version"
INFO[0000] Starting multi-runner from /etc/gitlab-runner/config.toml... builds=0
WARN[0000] Running in user-mode.
WARN[0000] Use sudo for system-mode:
WARN[0000] $ sudo gitlab-runner...
INFO[0000]
INFO[0000] Configuration loaded builds=0
INFO[0000] listen_address not defined, metrics & debug endpoints disabled builds=0
INFO[0000] [session_server].listen_address not defined, session endpoints disabled builds=0
json
{"arch":"amd64","level":"info","msg":"Runtime platform","os":"darwin","pid":38229,"revision":"HEAD","time":"2020-06-05T15:57:35+02:00","version":"development version"}
{"builds":0,"level":"info","msg":"Starting multi-runner from /etc/gitlab-runner/config.toml...","time":"2020-06-05T15:57:35+02:00"}
{"level":"warning","msg":"Running in user-mode.","time":"2020-06-05T15:57:35+02:00"}
{"level":"warning","msg":"Use sudo for system-mode:","time":"2020-06-05T15:57:35+02:00"}
{"level":"warning","msg":"$ sudo gitlab-runner...","time":"2020-06-05T15:57:35+02:00"}
{"level":"info","msg":"","time":"2020-06-05T15:57:35+02:00"}
{"builds":0,"level":"info","msg":"Configuration loaded","time":"2020-06-05T15:57:35+02:00"}
{"builds":0,"level":"info","msg":"listen_address not defined, metrics \u0026 debug endpoints disabled","time":"2020-06-05T15:57:35+02:00"}
{"builds":0,"level":"info","msg":"[session_server].listen_address not defined, session endpoints disabled","time":"2020-06-05T15:57:35+02:00"}
[ [ runners ] ]
每一个 [ [ runners ] ] 部分定义一个跑步者
环境 | 描述 |
---|---|
name | 跑步者的描述。仅供参考。 |
url | GitLab 实例 URL。 |
token | runner的认证token,在runner注册时获取。不一样的注册令牌。 |
tls-ca-file | 使用 HTTPS 时,包含用于验证对等方的证书的文件。请参阅自签名证书或自定义证书颁发机构文档。 |
tls-cert-file | 使用 HTTPS 时,包含与对等方进行身份验证的证书的文件。 |
tls-key-file | 使用 HTTPS 时,包含与对等方进行身份验证的私钥的文件。 |
limit | 限制此注册的跑步者可以同时处理多少个作业。0(默认)表示不限制。查看此设置如何与 Docker Machine 执行器(用于自动缩放)一起使用。 |
executor | 选择应该如何构建项目。 |
shell | 生成脚本的 shell 的名称。默认值取决于平台。 |
builds_dir | 构建存储在所选执行程序上下文中的目录的绝对路径。例如,本地、Docker 或 SSH。 |
cache_dir | 构建缓存存储在选定执行程序上下文中的目录的绝对路径。例如,本地、Docker 或 SSH。如果使用docker执行器,则需要在其volumes参数中包含该目录。 |
environment | 追加或覆盖环境变量。 |
request_concurrency | 限制来自 GitLab 的新作业的并发请求数。默认为1。 |
output_limit | 以千字节为单位的最大构建日志大小。默认值为4096(4MB)。 |
pre_clone_script | 克隆 Git 存储库之前要在运行器上执行的命令。例如,首先使用它来调整 Git 客户端配置。要插入多个命令,请使用(三引号)多行字符串或\n字符。 |
post_clone_script | 克隆 Git 存储库和更新子模块后要在运行器上执行的命令。要插入多个命令,请使用(三引号)多行字符串或\n字符。 |
pre_build_script | 在执行构建之前要在运行器上执行的命令。要插入多个命令,请使用(三引号)多行字符串或\n字符。 |
post_build_script | 在执行构建之后但在执行之前要在运行器上执行的命令after_script。要插入多个命令,请使用(三引号)多行字符串或\n字符。 |
clone_url | 覆盖 GitLab 实例的 URL。仅在跑步者无法连接到 GitLab URL 时使用。 |
debug_trace_disabled | 禁用该CI_DEBUG_TRACE功能。当设置为 时true,调试日志(跟踪)保持禁用状态,即使用户CI_DEBUG_TRACE设置为true。 |
referees | 额外的工作监控工作者将他们的结果作为工作工件传递给 GitLab。 |
例子:
[[runners]]
name = "ruby-2.7-docker"
url = "https://CI/"
token = "TOKEN"
limit = 0
executor = "docker"
builds_dir = ""
shell = ""
environment = ["ENV=value", "LC_ALL=en_US.UTF-8"]
clone_url = "http://gitlab.example.local"