From 0151d194cb071d50d414d2a52d12b95160b15ee6 Mon Sep 17 00:00:00 2001 From: Ricky Ng-Adam Date: Tue, 3 Jun 2025 13:45:10 +0000 Subject: [PATCH 1/3] fix: force reinstall when an offline registered runner --- tasks/install_runner_unix.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tasks/install_runner_unix.yml b/tasks/install_runner_unix.yml index f28e633..4042732 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 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 }}/\ From 1b1a6d86abc6ef0281e15f206fe1ac38f5c322f6 Mon Sep 17 00:00:00 2001 From: Ricky Ng-Adam Date: Wed, 4 Jun 2025 13:20:38 +0000 Subject: [PATCH 2/3] test: find out what registered runners are retrieved --- tasks/collect_info.yml | 5 +++++ tasks/install_runner_unix.yml | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/tasks/collect_info.yml b/tasks/collect_info.yml index 7363686..19a0a4e 100644 --- a/tasks/collect_info.yml +++ b/tasks/collect_info.yml @@ -48,6 +48,11 @@ become: false run_once: "{{ all_runners_in_same_repo }}" + - name: Print registered runners (formatted JSON) + ansible.builtin.debug: + msg: "{{ registered_runners | to_nice_json }}" + when: registered_runners is defined + - name: Get Runner User IDs ansible.builtin.command: id -u "{{ runner_user }}" changed_when: false diff --git a/tasks/install_runner_unix.yml b/tasks/install_runner_unix.yml index 4042732..8497017 100644 --- a/tasks/install_runner_unix.yml +++ b/tasks/install_runner_unix.yml @@ -19,12 +19,12 @@ changed_when: false ignore_errors: true -- name: Force reinstall if runner in registered_runners is offline (meaning the self-hosted runner is not tied to the Github runner) +- 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 + - 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 From fde769a6ee02daa9adb531719af658b4ef67f012 Mon Sep 17 00:00:00 2001 From: Ricky Ng-Adam Date: Wed, 25 Jun 2025 14:39:48 +0000 Subject: [PATCH 3/3] fix: query parameter instead of body parameter --- tasks/collect_info.yml | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/tasks/collect_info.yml b/tasks/collect_info.yml index 19a0a4e..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 @@ -48,11 +45,6 @@ become: false run_once: "{{ all_runners_in_same_repo }}" - - name: Print registered runners (formatted JSON) - ansible.builtin.debug: - msg: "{{ registered_runners | to_nice_json }}" - when: registered_runners is defined - - name: Get Runner User IDs ansible.builtin.command: id -u "{{ runner_user }}" changed_when: false