--- - 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: gitea_runner_registered - name: Register runner with Gitea ansible.builtin.command: > {{ gitea_runner_binary_path }} register --token {{ registration_token }} --name {{ gitea_runner_name }} --instance {{ gitea_url }} --labels {{ gitea_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) }}" 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: not gitea_runner_registered.stat.exists register: gitea_runner_register_output changed_when: "'already exists' not in gitea_runner_register_output.stdout | default('')" timeout: 60