From 56560855b45d3201a25319425d6a9781f02b337b Mon Sep 17 00:00:00 2001
From: Rafael Guterres Jeffman <rjeffman@redhat.com>
Date: Mon, 26 Dec 2022 12:01:27 -0300
Subject: [PATCH] upstream ci: Allow tasks to retry in case of connection
 failure.

Some tasks used to setup Azure environment might fail to temporary
errors like timeouts and connection failures. Allowing the tasks to
retry a few times will allow the test to be correctly executed rather
than returning an error that is not related to the feature tested.
---
 tests/azure/templates/build_container.yml      | 3 +++
 tests/azure/templates/galaxy_pytest_script.yml | 5 +++++
 tests/azure/templates/galaxy_script.yml        | 4 ++++
 tests/azure/templates/playbook_fast.yml        | 5 +++++
 tests/azure/templates/playbook_tests.yml       | 5 +++++
 tests/azure/templates/pytest_tests.yml         | 5 +++++
 6 files changed, 27 insertions(+)

diff --git a/tests/azure/templates/build_container.yml b/tests/azure/templates/build_container.yml
index 7d5c1fb0..f66b76aa 100644
--- a/tests/azure/templates/build_container.yml
+++ b/tests/azure/templates/build_container.yml
@@ -19,12 +19,15 @@ jobs:
       versionSpec: '${{ parameters.python_version }}'
 
   - script: python -m pip install --upgrade pip setuptools wheel ansible
+    retryCountOnTaskFailure: 5
     displayName: Install tools
 
   - script: pip install molecule[docker]
+    retryCountOnTaskFailure: 5
     displayName: Install molecule
 
   - script: molecule create -s ${{ parameters.build_scenario_name }}
+    retryCountOnTaskFailure: 5
     displayName: Create test container
     env:
       ANSIBLE_LIBRARY: ./molecule
diff --git a/tests/azure/templates/galaxy_pytest_script.yml b/tests/azure/templates/galaxy_pytest_script.yml
index 1f629b29..68a051c9 100644
--- a/tests/azure/templates/galaxy_pytest_script.yml
+++ b/tests/azure/templates/galaxy_pytest_script.yml
@@ -25,16 +25,21 @@ jobs:
       pip install \
         "molecule[docker]>=3" \
         "ansible${{ parameters.ansible_version }}"
+    retryCountOnTaskFailure: 5
     displayName: Install molecule and Ansible
 
   - script: ansible-galaxy collection install community.docker ansible.posix
+    retryCountOnTaskFailure: 5
     displayName: Install Ansible collections
 
   - script: pip install -r requirements-tests.txt
+    retryCountOnTaskFailure: 5
     displayName: Install dependencies
+
   - script: |
       utils/build-galaxy-release.sh -i
       molecule create -s ${{ parameters.scenario }}
+    retryCountOnTaskFailure: 5
     displayName: Setup test container
     env:
       ANSIBLE_LIBRARY: ./molecule
diff --git a/tests/azure/templates/galaxy_script.yml b/tests/azure/templates/galaxy_script.yml
index 57ce8d3a..3564c9cc 100644
--- a/tests/azure/templates/galaxy_script.yml
+++ b/tests/azure/templates/galaxy_script.yml
@@ -35,17 +35,21 @@ jobs:
       pip install \
         "molecule[docker]>=3" \
         "ansible${{ parameters.ansible_version }}"
+    retryCountOnTaskFailure: 5
     displayName: Install molecule and Ansible
 
   - script: ansible-galaxy collection install community.docker ansible.posix
+    retryCountOnTaskFailure: 5
     displayName: Install Ansible collections
 
   - script: pip install -r requirements-tests.txt
+    retryCountOnTaskFailure: 5
     displayName: Install dependencies
 
   - script: |
       utils/build-galaxy-release.sh -i
       molecule create -s ${{ parameters.scenario }}
+    retryCountOnTaskFailure: 5
     displayName: Setup test container
     env:
       ANSIBLE_LIBRARY: ./molecule
diff --git a/tests/azure/templates/playbook_fast.yml b/tests/azure/templates/playbook_fast.yml
index ef613cd0..962315a8 100644
--- a/tests/azure/templates/playbook_fast.yml
+++ b/tests/azure/templates/playbook_fast.yml
@@ -34,20 +34,25 @@ jobs:
       pip install \
         "molecule[docker]>=3" \
         "ansible${{ parameters.ansible_version }}"
+    retryCountOnTaskFailure: 5
     displayName: Install molecule and Ansible
 
   - script: ansible-galaxy collection install community.docker ansible.posix
+    retryCountOnTaskFailure: 5
     displayName: Install Ansible collections
 
   - script: pip install -r requirements-tests.txt
+    retryCountOnTaskFailure: 5
     displayName: Install dependencies
 
   - script: |
+      rm -rf ~/ansible
       mkdir -p ~/.ansible/roles ~/.ansible/library ~/.ansible/module_utils
       cp -a roles/* ~/.ansible/roles
       cp -a plugins/modules/* ~/.ansible/library
       cp -a plugins/module_utils/* ~/.ansible/module_utils
       molecule create -s ${{ parameters.scenario }}
+    retryCountOnTaskFailure: 5
     displayName: Setup test container
     env:
       ANSIBLE_LIBRARY: ./molecule
diff --git a/tests/azure/templates/playbook_tests.yml b/tests/azure/templates/playbook_tests.yml
index 729a8975..712dfb62 100644
--- a/tests/azure/templates/playbook_tests.yml
+++ b/tests/azure/templates/playbook_tests.yml
@@ -34,20 +34,25 @@ jobs:
       pip install \
         "molecule[docker]>=3" \
         "ansible${{ parameters.ansible_version }}"
+    retryCountOnTaskFailure: 5
     displayName: Install molecule and Ansible
 
   - script: ansible-galaxy collection install community.docker ansible.posix
+    retryCountOnTaskFailure: 5
     displayName: Install Ansible collections
 
   - script: pip install -r requirements-tests.txt
+    retryCountOnTaskFailure: 5
     displayName: Install dependencies
 
   - script: |
+      rm -rf ~/ansible
       mkdir -p ~/.ansible/roles ~/.ansible/library ~/.ansible/module_utils
       cp -a roles/* ~/.ansible/roles
       cp -a plugins/modules/* ~/.ansible/library
       cp -a plugins/module_utils/* ~/.ansible/module_utils
       molecule create -s ${{ parameters.scenario }}
+    retryCountOnTaskFailure: 5
     displayName: Setup test container
     env:
       ANSIBLE_LIBRARY: ./molecule
diff --git a/tests/azure/templates/pytest_tests.yml b/tests/azure/templates/pytest_tests.yml
index 6afd5890..99fb3206 100644
--- a/tests/azure/templates/pytest_tests.yml
+++ b/tests/azure/templates/pytest_tests.yml
@@ -28,20 +28,25 @@ jobs:
       pip install \
         "molecule[docker]>=3" \
         "ansible${{ parameters.ansible_version }}"
+    retryCountOnTaskFailure: 5
     displayName: Install molecule and Ansible
 
   - script: ansible-galaxy collection install community.docker ansible.posix
+    retryCountOnTaskFailure: 5
     displayName: Install Ansible collections
 
   - script: pip install -r requirements-tests.txt
+    retryCountOnTaskFailure: 5
     displayName: Install dependencies
 
   - script: |
+      rm -rf ~/.ansible
       mkdir -p ~/.ansible/roles ~/.ansible/library ~/.ansible/module_utils
       cp -a roles/* ~/.ansible/roles
       cp -a plugins/modules/* ~/.ansible/library
       cp -a plugins/module_utils/* ~/.ansible/module_utils
       molecule create -s ${{ parameters.scenario }}
+    retryCountOnTaskFailure: 5
     displayName: Setup test container
     env:
       ANSIBLE_LIBRARY: ./molecule
-- 
GitLab