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>
53 lines
1.5 KiB
YAML
53 lines
1.5 KiB
YAML
---
|
|
- name: download act_runner binary
|
|
become: true
|
|
ansible.builtin.get_url:
|
|
url: "https://dl.gitea.com/act_runner/{{ gitea_runner_version }}/act_runner-{{ gitea_runner_version }}-{{ gitea_runner_arch }}"
|
|
dest: "{{ act_runner_bin }}"
|
|
mode: "0755"
|
|
tags: gitea-actions
|
|
|
|
- name: create act_runner config directory
|
|
become: true
|
|
ansible.builtin.file:
|
|
path: "{{ act_runner_config_dir }}"
|
|
state: directory
|
|
mode: "0755"
|
|
tags: gitea-actions
|
|
|
|
- name: create per-runner working directory
|
|
become: true
|
|
ansible.builtin.file:
|
|
path: "{{ act_runner_work_dir }}/{{ item.name }}"
|
|
state: directory
|
|
owner: "{{ gitea_runner_user }}"
|
|
group: "{{ gitea_runner_user }}"
|
|
mode: "0755"
|
|
loop: "{{ gitea_runners }}"
|
|
tags: gitea-actions
|
|
|
|
- name: create per-runner cache directory
|
|
become: true
|
|
ansible.builtin.file:
|
|
path: "{{ act_runner_work_dir }}/{{ item.name }}/cache"
|
|
state: directory
|
|
owner: "{{ gitea_runner_user }}"
|
|
group: "{{ gitea_runner_user }}"
|
|
mode: "0755"
|
|
loop: "{{ gitea_runners }}"
|
|
tags: gitea-actions
|
|
|
|
- name: deploy per-runner configuration
|
|
become: true
|
|
ansible.builtin.template:
|
|
src: config.yaml.j2
|
|
dest: "{{ act_runner_config_dir }}/config-{{ item.name }}.yaml"
|
|
mode: "0644"
|
|
vars:
|
|
runner_name: "{{ item.name }}"
|
|
runner_capacity: "{{ item.capacity | default(gitea_runner_capacity) }}"
|
|
runner_labels: "{{ item.labels | default(gitea_runner_labels) }}"
|
|
loop: "{{ gitea_runners }}"
|
|
notify: restart act_runner services
|
|
tags: gitea-actions
|