2640d09cb5
Switch the act_runners from :host execution to docker:// images backed by a rootless podman socket under the gitea-runner user, so each job runs in its own ephemeral container with per-job Go caches. This eliminates the cross-repo GOMODCACHE/go-build poisoning that forced the debyl runner to capacity:1. - deps.yml: enable the rootless --user podman.socket, ensure subuid/subgid, register gitea_runner_uid; drop the rootful system socket override, podman-docker and host golang - images.yml + Containerfile.ci/.espidf: build localhost/gitea-ci and localhost/gitea-ci-espidf into the runner's rootless image store - config.yaml.j2: docker:// labels (per-runner overridable), docker_host -> rootless socket, force_pull false - act_runner.service.j2: XDG_RUNTIME_DIR + DOCKER_HOST -> user socket - defaults: uniform capacity:4 (drop the debyl capacity:1 workaround); esp_idf_version now tags the espressif/idf-based image - main.yml: import images.yml, drop the host esp-idf install (firmware jobs use the espressif/idf job container instead) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
18 lines
564 B
Django/Jinja
18 lines
564 B
Django/Jinja
[Unit]
|
|
Description=Gitea Actions runner ({{ runner_name }})
|
|
Documentation=https://gitea.com/gitea/act_runner
|
|
After=network.target
|
|
|
|
[Service]
|
|
ExecStart={{ act_runner_bin }} daemon --config {{ act_runner_config_dir }}/config-{{ runner_name }}.yaml
|
|
WorkingDirectory={{ act_runner_work_dir }}/{{ runner_name }}
|
|
TimeoutSec=0
|
|
RestartSec=10
|
|
Restart=always
|
|
User={{ gitea_runner_user }}
|
|
Environment="XDG_RUNTIME_DIR=/run/user/{{ gitea_runner_uid }}"
|
|
Environment="DOCKER_HOST=unix:///run/user/{{ gitea_runner_uid }}/podman/podman.sock"
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|