我正在致力于向 gitlab 添加代码质量。其中一个步骤需要更改 config.toml。
我在项目存储库的根级别有 .gitlab-ci.yml。并且管道拾取此文件。
我在哪里定义 config.toml ?在根级别,或者我需要创建一个新文件夹,例如 /etc/gitlab-runner/config.toml
我是 Gitlab Pipelines 的新手,想为我的一个 Python 项目设置一个。我将 docker GitLab-runner 容器与此配置文件一起使用:
version: '3'
services:
runner:
container_name: runner
image: gitlab/gitlab-runner:latest
restart: unless-stopped
environment:
- TZ=Europe/Berlin
volumes:
- ./data:/etc/gitlab-runner/
- /var/run/docker.sock:/var/run/docker.sock
Run Code Online (Sandbox Code Playgroud)
每当执行管道时,我都会收到以下错误消息:
Running with GitLab-runner 14.10.1 (f761588f)
on docker xxxxxxx
Preparing the "docker" executor
Using Docker executor with image python:latest ...
Pulling docker image python:latest ...
Using docker image sha256:8dec8e39f2eca1ee1f1b668619023da929039a39983de4433d42d25a7b79267c for python:latest with digest python@sha256:567018293e51a89db96ce4c9679fdefc89b3d17a9fe9e94c0091b04ac5bb4e89 ...
Preparing environment
Running on runner-xxxxxxxxx-project-38-concurrent-0 via xxxxxxxx...
Getting source from Git repository
Fetching changes with git depth set …
Run Code Online (Sandbox Code Playgroud) 我们有一个 gitlab 运行器在 AWS 上的 kubernetes 集群中运行。测试工作:
test-job:
image: centos
stage: build
cache:
paths:
- output
script:
- mkdir -p output
- date +"%Y-%m-%d" > output/date.txt
tags:
- docker
when: always
takes about 4 minutes to run - but only 4s if i remove the "cache" section.
Run Code Online (Sandbox Code Playgroud)
我的跑步者的 config.toml 看起来像这样
[[runners]]
name = "gitlab-runner..."
url = "https://gitlab...."
token = "....."
executor = "docker"
[runners.custom_build_dir]
[runners.cache]
Type = "s3"
Shared = true
[runners.cache.s3]
AccessKey = "...."
SecretKey = "...."
BucketName = …
Run Code Online (Sandbox Code Playgroud) 当尝试在 gitlab-ci 秘密变量上使用包含美元符号的值的秘密变量时,它没有正确获得变量值。
我一直在试图找出 gitlab-runner 的问题是什么,我已经在 unix 上安装了 gitlab-runner 。它突然显示错误“分段错误(核心转储)”。我尝试重新安装 gitlab-runner,或检查状态。我尝试的每个命令都会生成一个错误。如何修复这个错误?
我们正在使用 Gitlab Runner 和 Kubernetes 执行器,我们正在思考我认为目前不可能的事情。我们希望将 Gitlab Runner 守护进程的 pod 分配给实例类型为 X 的特定节点组的工作线程,并将作业的 pod 分配给不同节点组 Y 工作节点,因为这些节点通常比 Gitlab Runner 的 pod 需要更多的计算资源。
这样做是为了节省成本,因为 Gitlab 运行程序主守护进程将始终运行在节点上,然后我们希望它在便宜的实例上运行,然后需要更多计算能力的作业可以在不同的实例上运行具有不同的类型,将由 Cluster Autoscaler 启动,并在不存在作业时销毁。
我对此功能进行了调查,将 pod 分配到特定节点的可用方法是使用节点选择器或节点亲和性,但这两个配置部分中包含的规则适用于 Gitlab Runner 的所有 pod,主 Pod 和工作 Pod。该提案旨在使应用两种单独的配置成为可能,一种用于 Gitlab Runner 的 Pod,另一种用于作业的 Pod。
当前的现有配置由节点选择器和节点/pod 亲和力组成,但正如我提到的,这些配置全局适用于所有 pod,而不是我们在本例中想要的指定的 pod。
Gitlab Runner Kubernetes 执行器配置:https://docs.gitlab.com/runner/executors/kubernetes.html