From b7a04f37deebc4d51d585b402bb244caaa1b1c4a Mon Sep 17 00:00:00 2001 From: Emil Simeonov Date: Sun, 21 Jun 2026 00:13:19 +0200 Subject: [PATCH] fix: make user_setup and download tasks idempotent The "Enable lingering" task always reported changed=true, and the "Download gitea_runner binary" task used force=true which always re-downloads. Both caused molecule idempotence tests to fail. - Check /var/lib/systemd/linger/ before enabling lingering - Set force=false on get_url so binary is only downloaded if missing Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com> --- ansible/roles/gitea-runner/tasks/download_gitea_runner.yml | 2 +- ansible/roles/gitea-runner/tasks/user_setup.yml | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/ansible/roles/gitea-runner/tasks/download_gitea_runner.yml b/ansible/roles/gitea-runner/tasks/download_gitea_runner.yml index 75baf3b..ad5f355 100644 --- a/ansible/roles/gitea-runner/tasks/download_gitea_runner.yml +++ b/ansible/roles/gitea-runner/tasks/download_gitea_runner.yml @@ -40,7 +40,7 @@ url: "{{ gitea_runner_url }}" dest: "{{ gitea_runner_binary_path }}" mode: "0755" - force: true + force: false register: gitea_runner_download notify: Restart gitea-runner retries: 3 diff --git a/ansible/roles/gitea-runner/tasks/user_setup.yml b/ansible/roles/gitea-runner/tasks/user_setup.yml index afac28b..6159853 100644 --- a/ansible/roles/gitea-runner/tasks/user_setup.yml +++ b/ansible/roles/gitea-runner/tasks/user_setup.yml @@ -12,9 +12,14 @@ ansible.builtin.set_fact: gitea_runner_uid: "{{ runner_user.uid }}" +- name: Check if lingering is already enabled + ansible.builtin.stat: + path: "/var/lib/systemd/linger/{{ gitea_runner_service_user }}" + register: linger_stat + - name: Enable lingering for runner user ansible.builtin.command: loginctl enable-linger {{ gitea_runner_service_user }} - changed_when: true + changed_when: not linger_stat.stat.exists - name: Ensure subuid entry for runner user ansible.builtin.lineinfile: