diff --git a/tasks/collect_info.yml b/tasks/collect_info.yml index 7363686..89cbd7a 100644 --- a/tasks/collect_info.yml +++ b/tasks/collect_info.yml @@ -33,14 +33,11 @@ - name: "Check currently registered runners for repo {{ '(RUN ONCE)' if all_runners_in_same_repo else '' }}" ansible.builtin.uri: - url: "{{ github_full_api_url }}" + url: "{{ github_full_api_url }}{{ '?' if '?' not in github_full_api_url else '&' }}per_page={{ github_api_runners_per_page }}" headers: Authorization: "token {{ access_token }}" Accept: "application/vnd.github.v3+json" method: GET - body_format: form-urlencoded - body: - per_page: "{{ github_api_runners_per_page }}" status_code: 200 force_basic_auth: true register: registered_runners diff --git a/tasks/install_runner_unix.yml b/tasks/install_runner_unix.yml index f28e633..8497017 100644 --- a/tasks/install_runner_unix.yml +++ b/tasks/install_runner_unix.yml @@ -19,6 +19,14 @@ changed_when: false ignore_errors: true +- name: Force reinstall if runner {{ runner_name }} in registered_runners is offline (meaning the self-hosted runner is not tied to the Github runner) + ansible.builtin.set_fact: + reinstall_runner: true + when: + - not reinstall_runner + - runner_name in (registered_runners.json.runners | map(attribute='name') | list) + - (registered_runners.json.runners | selectattr('name', 'equalto', runner_name) | first).status == 'offline' + - name: Unarchive runner package ansible.builtin.unarchive: src: "https://github.com/{{ runner_download_repository }}/releases/download/v{{ runner_version }}/\