Post-merge / detect-type (push) Successful in 1m16s
Post-merge / release (push) Successful in 1m12s
Post-merge / validate-commit-msg (push) Successful in 1m27s
Post-merge / configure-repo (push) Successful in 1m27s
Post-merge / vikunja (push) Successful in 1m31s
Post-merge / badges (push) Successful in 1m33s
Post-merge / sync-wiki (push) Successful in 1m43s
Post-merge / publish (push) Successful in 46s
59 lines
2.2 KiB
YAML
59 lines
2.2 KiB
YAML
---
|
|
- name: Check if runner registration file exists
|
|
ansible.builtin.stat:
|
|
path: "{{ gitea_runner_data_dir }}/.runner"
|
|
register: runner_file_stat
|
|
|
|
- name: Read runner registration file
|
|
ansible.builtin.slurp:
|
|
src: "{{ gitea_runner_data_dir }}/.runner"
|
|
register: runner_file_content
|
|
when: runner_file_stat.stat.exists | default(false) | bool
|
|
|
|
- name: Parse runner registration data
|
|
ansible.builtin.set_fact:
|
|
runner_reg: >
|
|
{{ (runner_file_content.content | b64decode | from_json)
|
|
if (runner_file_content is defined and runner_file_content.content is defined)
|
|
else {} }}
|
|
when: runner_file_stat.stat.exists | default(false) | bool
|
|
|
|
- name: Deregister runner from Gitea via API
|
|
ansible.builtin.command: >
|
|
curl -sf --connect-timeout 5 --max-time 10 -X DELETE
|
|
-H "Authorization: token {{ gitea_admin_token | default(registration_token) }}"
|
|
"{{ gitea_url }}/api/v1/admin/actions/runners/{{ runner_reg.id }}"
|
|
args:
|
|
chdir: "{{ gitea_runner_data_dir }}"
|
|
become: true
|
|
become_user: "{{ gitea_runner_service_user }}"
|
|
environment:
|
|
XDG_RUNTIME_DIR: "/run/user/{{ gitea_runner_uid | default(0) }}"
|
|
DOCKER_HOST: "unix:///run/user/{{ gitea_runner_uid | default(0) }}/docker.sock"
|
|
when:
|
|
- runner_file_stat.stat.exists | default(false) | bool
|
|
- not skip_runner_registration
|
|
- runner_reg.id is defined
|
|
register: deregister_output
|
|
changed_when: deregister_output.rc == 0
|
|
failed_when: false
|
|
|
|
- name: Warn if deregistration failed
|
|
ansible.builtin.debug:
|
|
msg: >-
|
|
WARNING: Runner deregistration from Gitea failed (rc={{ deregister_output.rc | default('N/A') }}).
|
|
The runner entry may remain in Gitea's admin UI as offline.
|
|
Use an admin token (gitea_admin_token var) to enable automatic cleanup,
|
|
or remove it manually from {{ gitea_url }}/-/admin/actions/runners
|
|
when:
|
|
- runner_file_stat.stat.exists | default(false) | bool
|
|
- not skip_runner_registration
|
|
- deregister_output is defined
|
|
- deregister_output.rc | default(1) != 0
|
|
|
|
- name: Remove runner registration file
|
|
ansible.builtin.file:
|
|
path: "{{ gitea_runner_data_dir }}/.runner"
|
|
state: absent
|
|
when: runner_file_stat.stat.exists | default(false) | bool
|