--- - 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 with Gitea via CLI ansible.builtin.command: > {{ gitea_runner_binary_path }} delete --token {{ registration_token }} --name {{ runner_name }} --instance {{ gitea_url }} --no-interactive args: chdir: "{{ gitea_runner_data_dir }}" become: true become_user: "{{ gitea_runner_service_user }}" environment: XDG_RUNTIME_DIR: "/run/user/{{ gitea_runner_uid }}" DOCKER_HOST: "unix:///run/user/{{ gitea_runner_uid }}/docker.sock" when: - runner_file_stat.stat.exists | default(false) | bool - not skip_runner_registration register: deregister_output changed_when: deregister_output.rc == 0 failed_when: false - 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