--- - name: Wait for runner to appear in Gitea API ansible.builtin.uri: url: "{{ gitea_url }}/api/v1/admin/runners" headers: Authorization: "token {{ registration_token }}" method: GET status_code: 200 return_content: true register: runners_response until: > runners_response.json.runners | default([]) | selectattr('name', 'equalto', runner_name) | list | length > 0 retries: 12 delay: 10 when: gitea_url is defined and registration_token is defined - name: Verify runner is online ansible.builtin.uri: url: "{{ gitea_url }}/api/v1/admin/runners" headers: Authorization: "token {{ registration_token }}" method: GET status_code: 200 return_content: true register: runners_check when: gitea_url is defined and registration_token is defined - name: Fail if runner is not online ansible.builtin.fail: msg: "Runner '{{ runner_name }}' is not online in Gitea" when: - gitea_url is defined - registration_token is defined - > runners_check.json.runners | default([]) | selectattr('name', 'equalto', runner_name) | selectattr('status', 'equalto', 'online') | list | length == 0