From 52023081ab31e4fe48cad5ff1ee5ccafbc3476fb Mon Sep 17 00:00:00 2001 From: Michael Schiemer Date: Sat, 8 Nov 2025 17:34:59 +0100 Subject: [PATCH] fix: Add retry logic to git operations in deploy-application-code.yml - Add retry logic (5 retries, 10s delay) to git clone and update tasks - Handle 504 Gateway Timeout errors from Gitea gracefully - Fail with clear error message if all retries are exhausted - Prevents workflow failures due to temporary Gitea unavailability --- .../playbooks/deploy-application-code.yml | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/deployment/ansible/playbooks/deploy-application-code.yml b/deployment/ansible/playbooks/deploy-application-code.yml index a5d40a82..db9d4c01 100644 --- a/deployment/ansible/playbooks/deploy-application-code.yml +++ b/deployment/ansible/playbooks/deploy-application-code.yml @@ -68,6 +68,18 @@ GIT_TERMINAL_PROMPT: "0" vars: ansible_become: no + register: git_clone_result + retries: 5 + delay: 10 + until: git_clone_result is succeeded + ignore_errors: yes + + - name: Fail if git clone failed after retries + fail: + msg: "Failed to clone repository after 5 retries. Gitea may be unreachable or overloaded. Last error: {{ git_clone_result.msg | default('Unknown error') }}" + when: + - not git_repo_exists.stat.exists + - git_clone_result is failed - name: Update repository (if exists) ansible.builtin.git: @@ -81,6 +93,18 @@ GIT_TERMINAL_PROMPT: "0" vars: ansible_become: no + register: git_update_result + retries: 5 + delay: 10 + until: git_update_result is succeeded + ignore_errors: yes + + - name: Fail if git update failed after retries + fail: + msg: "Failed to update repository after 5 retries. Gitea may be unreachable or overloaded. Last error: {{ git_update_result.msg | default('Unknown error') }}" + when: + - git_repo_exists.stat.exists + - git_update_result is failed - name: Set ownership of repository files file: