--- - name: Ensure work directory exists ansible.builtin.file: path: "{{ gitea_runner_data_dir }}" state: directory owner: "{{ gitea_runner_service_user }}" group: "{{ gitea_runner_service_user }}" mode: "0755" - name: Check if runner is already registered ansible.builtin.stat: path: "{{ gitea_runner_data_dir }}/.runner" register: runner_registered - name: Register runner with Gitea ansible.builtin.command: > {{ gitea_runner_binary_path }} register --token {{ registration_token }} --name {{ runner_name }} --instance {{ gitea_url }} --labels {{ runner_labels }} --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 | default(0) }}" DOCKER_HOST: "unix:///run/user/{{ gitea_runner_uid | default(0) }}/docker.sock" when: not runner_registered.stat.exists register: register_output changed_when: "'already exists' not in register_output.stdout | default('')" timeout: 60