--- - name: Verify runner was fully removed hosts: all become: true vars: gitea_runner_name: "remove-test-runner" pre_tasks: - name: Load role defaults ansible.builtin.include_vars: dir: "{{ lookup('env', 'MOLECULE_PROJECT_DIRECTORY') }}/defaults" tasks: - name: Check runner user is absent ansible.builtin.getent: database: passwd key: "{{ gitea_runner_service_user }}" register: user_check failed_when: false - name: Assert runner user is absent ansible.builtin.assert: that: - user_check is failed or gitea_runner_service_user not in (user_check.ansible_facts.getent_passwd | default({})) fail_msg: "Runner user still exists after removal" - name: Check runner home directory is absent ansible.builtin.stat: path: "{{ gitea_runner_home }}" register: home_stat - name: Assert runner home directory is absent ansible.builtin.assert: that: - not home_stat.stat.exists fail_msg: "Runner home directory still exists after removal" - name: Check runner data directory is absent ansible.builtin.stat: path: "{{ gitea_runner_data_dir }}" register: data_stat - name: Assert runner data directory is absent ansible.builtin.assert: that: - not data_stat.stat.exists fail_msg: "Runner data directory still exists after removal" - name: Check runner config directory is absent ansible.builtin.stat: path: "{{ gitea_runner_config_dir }}" register: config_stat - name: Assert runner config directory is absent ansible.builtin.assert: that: - not config_stat.stat.exists fail_msg: "Runner config directory still exists after removal" - name: Check gitea-runner service unit is absent ansible.builtin.stat: path: "{{ gitea_runner_home }}/.config/systemd/user/gitea-runner.service" register: service_stat - name: Assert gitea-runner service unit is absent ansible.builtin.assert: that: - not service_stat.stat.exists fail_msg: "gitea-runner service unit still exists after removal" - name: Check docker-prune service unit is absent ansible.builtin.stat: path: "{{ gitea_runner_home }}/.config/systemd/user/docker-prune.service" register: prune_service_stat - name: Assert docker-prune service unit is absent ansible.builtin.assert: that: - not prune_service_stat.stat.exists fail_msg: "docker-prune service unit still exists after removal" - name: Check docker-prune timer unit is absent ansible.builtin.stat: path: "{{ gitea_runner_home }}/.config/systemd/user/docker-prune.timer" register: prune_timer_stat - name: Assert docker-prune timer unit is absent ansible.builtin.assert: that: - not prune_timer_stat.stat.exists fail_msg: "docker-prune timer unit still exists after removal" - name: Check healthcheck service unit is absent ansible.builtin.stat: path: "{{ gitea_runner_home }}/.config/systemd/user/runner-healthcheck.service" register: healthcheck_service_stat - name: Assert healthcheck service unit is absent ansible.builtin.assert: that: - not healthcheck_service_stat.stat.exists fail_msg: "runner-healthcheck service unit still exists after removal" - name: Check healthcheck timer unit is absent ansible.builtin.stat: path: "{{ gitea_runner_home }}/.config/systemd/user/runner-healthcheck.timer" register: healthcheck_timer_stat - name: Assert healthcheck timer unit is absent ansible.builtin.assert: that: - not healthcheck_timer_stat.stat.exists fail_msg: "runner-healthcheck timer unit still exists after removal" - name: Check healthcheck script is absent ansible.builtin.stat: path: "{{ gitea_runner_config_dir }}/healthcheck.sh" register: healthcheck_script_stat - name: Assert healthcheck script is absent ansible.builtin.assert: that: - not healthcheck_script_stat.stat.exists fail_msg: "healthcheck script still exists after removal" - name: Check subuid entry is absent ansible.builtin.command: "grep -c '^{{ gitea_runner_service_user }}:' /etc/subuid" register: subuid_check changed_when: false failed_when: false - name: Assert subuid entry is absent ansible.builtin.assert: that: - subuid_check.rc != 0 fail_msg: "subuid entry still exists after removal" - name: Check subgid entry is absent ansible.builtin.command: "grep -c '^{{ gitea_runner_service_user }}:' /etc/subgid" register: subgid_check changed_when: false failed_when: false - name: Assert subgid entry is absent ansible.builtin.assert: that: - subgid_check.rc != 0 fail_msg: "subgid entry still exists after removal"