60 lines
2.4 KiB
YAML
60 lines
2.4 KiB
YAML
---
|
|
- name: Check if runner registration file exists
|
|
ansible.builtin.stat:
|
|
path: "{{ gitea_runner_data_dir }}/.runner"
|
|
register: gitea_runner_file_stat
|
|
|
|
- name: Read runner registration file
|
|
ansible.builtin.slurp:
|
|
src: "{{ gitea_runner_data_dir }}/.runner"
|
|
register: gitea_runner_file_content
|
|
when: gitea_runner_file_stat.stat.exists | default(false) | bool
|
|
|
|
- name: Parse runner registration data
|
|
ansible.builtin.set_fact:
|
|
gitea_runner_reg: >
|
|
{{ (gitea_runner_file_content.content | b64decode | from_json)
|
|
if (gitea_runner_file_content is defined and gitea_runner_file_content.content is defined)
|
|
else {} }}
|
|
when: gitea_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_runner_admin_token | default(registration_token) }}"
|
|
"{{ gitea_url }}/api/v1/admin/actions/runners/{{ gitea_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) }}"
|
|
DBUS_SESSION_BUS_ADDRESS: "unix:path=/run/user/{{ gitea_runner_uid | default(0) }}/bus"
|
|
DOCKER_HOST: "unix:///run/user/{{ gitea_runner_uid | default(0) }}/docker.sock"
|
|
when:
|
|
- gitea_runner_file_stat.stat.exists | default(false) | bool
|
|
- not gitea_runner_skip_registration
|
|
- gitea_runner_reg.id is defined
|
|
register: gitea_runner_deregister_output
|
|
changed_when: gitea_runner_deregister_output.rc == 0
|
|
failed_when: false
|
|
|
|
- name: Warn if deregistration failed
|
|
ansible.builtin.debug:
|
|
msg: >-
|
|
WARNING: Runner deregistration from Gitea failed (rc={{ gitea_runner_deregister_output.rc | default('N/A') }}).
|
|
The runner entry may remain in Gitea's admin UI as offline.
|
|
Use an admin token (gitea_runner_admin_token var) to enable automatic cleanup,
|
|
or remove it manually from {{ gitea_url }}/-/admin/actions/runners
|
|
when:
|
|
- gitea_runner_file_stat.stat.exists | default(false) | bool
|
|
- not gitea_runner_skip_registration
|
|
- gitea_runner_deregister_output is defined
|
|
- gitea_runner_deregister_output.rc | default(1) != 0
|
|
|
|
- name: Remove runner registration file
|
|
ansible.builtin.file:
|
|
path: "{{ gitea_runner_data_dir }}/.runner"
|
|
state: absent
|
|
when: gitea_runner_file_stat.stat.exists | default(false) | bool
|