--- - name: Verify hosts: all become: true vars: runner_name: "template-test-runner" pre_tasks: - name: Load role defaults ansible.builtin.include_vars: dir: "{{ lookup('env', 'MOLECULE_PROJECT_DIRECTORY') }}/defaults" tasks: - name: Check systemd user service exists ansible.builtin.stat: path: "{{ gitea_runner_home }}/.config/systemd/user/gitea-runner.service" register: service_stat - name: Assert user service exists ansible.builtin.assert: that: - service_stat.stat.exists fail_msg: "Systemd user service is missing" - name: Read rendered user service template ansible.builtin.slurp: src: "{{ gitea_runner_home }}/.config/systemd/user/gitea-runner.service" register: service_template - name: Assert user service template contains expected directives ansible.builtin.assert: that: - "'Type=simple' in service_template.content | b64decode" - "'ExecStart={{ gitea_runner_binary_path }}' in service_template.content | b64decode" - "'Restart=on-failure' in service_template.content | b64decode" - "'DOCKER_HOST=unix:///run/user' in service_template.content | b64decode" - "'XDG_RUNTIME_DIR=/run/user' in service_template.content | b64decode" fail_msg: "User service template is missing expected directives" - name: Read rendered prune service template ansible.builtin.slurp: src: "{{ gitea_runner_home }}/.config/systemd/user/docker-prune.service" register: prune_service - name: Assert prune service contains expected directives ansible.builtin.assert: that: - "'Type=oneshot' in prune_service.content | b64decode" - "'docker system prune' in prune_service.content | b64decode" - "'docker volume prune' in prune_service.content | b64decode" fail_msg: "Prune service template is missing expected directives" - name: Read rendered prune timer template ansible.builtin.slurp: src: "{{ gitea_runner_home }}/.config/systemd/user/docker-prune.timer" register: prune_timer - name: Assert prune timer contains expected directives ansible.builtin.assert: that: - "'OnCalendar={{ gitea_runner_prune_schedule }}' in prune_timer.content | b64decode" - "'Persistent=true' in prune_timer.content | b64decode" fail_msg: "Prune timer template is missing expected directives"