最佳实践
以下是您使用和管理极狐GitLab Runner 应该遵循的准则。
构建目录
极狐GitLab Runner 将目录克隆到 Builds Directory 基路径下面的路径中。基目录的默认位置取决于执行器。对于:
- Kubernetes、Docker 和 Docker
Machine 执行器, 默认位置是容器内部的
/builds
。 - Shell 执行器,默认位置是
$PWD/builds
。 - SSH、VirtualBox
和 Parallels 执行器,默认位置是处理目标机SSH连接的用户的主目录中的
~/builds
。 - Custom 执行器,不提供默认位置,必须明确配置默认地址,否则作业会失败。
用户可以使用 builds_dir
配置所使用的 Builds Directory。
GIT_CLONE_PATH
,而且以下准则将不再适用。极狐GitLab Runner 为所有运行作业使用 Builds Directory,但是使用特定模式
{builds_dir}/$RUNNER_TOKEN_KEY/$CONCURRENT_ID/$NAMESPACE/$PROJECT_NAME
进行嵌套。
例如: /builds/2mn-ncv-/0/user/playground
极狐GitLab Runner 不会阻止您在 Builds Directory 中存储文件。例如您可以在 /builds/tools
里面存储 CI 执行工具。但是我们 非常 不鼓励您这样做,您不应该在 Builds
Directory 里面存储任何东西。极狐GitLab Runner 应该对其拥有完全控制权,并且在这种情况下不提供稳定性保证。
如果您需要安装 CI 所需的其他文件,我们建议您安在别处。
优雅关闭
当在主机上安装 Runner,并且运行本地执行器时,它会为某些操作开启额外进程,例如上传或下载产物或处理缓存。这些进程以 gitlab-runner
命令的形式进行执行,您可以使用 pkill -QUIT gitlab-runner
或 killall QUIT gitlab-runner
结束进程。结束进程时,相关操作会失败。
以下是防止这种现象发生的两种方法:
-
将 Runner 注册为本地服务 (例如
systemd
),以SIGQUIT
作为结束信号, 并且使用gitlab-runner stop
或systemctl stop gitlab-runner.service
。 以下是 GitLab.com 上共享 Runner 配置的一个例子:; /etc/systemd/system/gitlab-runner.service.d/kill.conf [Service] KillSignal=SIGQUIT TimeoutStopSec=__REDACTED__
-
使用
kill -SIGQUIT <pid>
手动结束进程。您需要通过查看日志找到主gitlab-runner
进程的pid
,它会在启动时显示。$ gitlab-runner run Runtime platform arch=amd64 os=linux pid=87858 revision=8d21977e version=12.10.0~beta.82.g8d21977e