Files
grm/ansible/roles/gitea-runner/tasks/integration_test.yml
T

60 lines
1.9 KiB
YAML

---
- name: Check if Gitea admin API is accessible
ansible.builtin.uri:
url: "{{ gitea_url }}/api/v1/admin/runners"
headers:
Authorization: "token {{ gitea_admin_token | default(registration_token) }}"
method: GET
status_code: [200, 401, 403, 404]
return_content: false
register: api_check
ignore_errors: true
when: gitea_url is defined and (gitea_admin_token is defined or registration_token is defined)
- name: Wait for runner to appear in Gitea API
ansible.builtin.uri:
url: "{{ gitea_url }}/api/v1/admin/runners"
headers:
Authorization: "token {{ gitea_admin_token | default(registration_token) }}"
method: GET
status_code: 200
return_content: true
body_format: json
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
- (gitea_admin_token is defined or registration_token is defined)
- api_check.status | default(0) == 200
- name: Verify runner is online
ansible.builtin.uri:
url: "{{ gitea_url }}/api/v1/admin/runners"
headers:
Authorization: "token {{ gitea_admin_token | default(registration_token) }}"
method: GET
status_code: 200
return_content: true
body_format: json
register: runners_check
when:
- gitea_url is defined
- (gitea_admin_token is defined or registration_token is defined)
- api_check.status | default(0) == 200
- name: Fail if runner is not online
ansible.builtin.fail:
msg: "Runner '{{ runner_name }}' is not online in Gitea"
when:
- gitea_url is defined
- (gitea_admin_token is defined or registration_token is defined)
- api_check.status | default(0) == 200
- >
runners_check.json.runners | default([]) |
selectattr('name', 'equalto', runner_name) |
selectattr('status', 'equalto', 'online') | list | length == 0