From fa12e2325410f3c511f0ee7bb12d34fc2b124796 Mon Sep 17 00:00:00 2001 From: Eric Laurello Date: Tue, 17 Mar 2026 16:51:28 -0400 Subject: [PATCH] Add retry logic for checkout and setup-python steps in selfhosted template Adds continue-on-error + 15s sleep + conditional retry for the checkout and setup-python steps in both the primary and fallback jobs to handle transient infrastructure failures gracefully. Co-Authored-By: Claude Opus 4.6 (1M context) --- .../workflows/dbt_run_selfhosted_template.yml | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/.github/workflows/dbt_run_selfhosted_template.yml b/.github/workflows/dbt_run_selfhosted_template.yml index 74e9448..109f427 100644 --- a/.github/workflows/dbt_run_selfhosted_template.yml +++ b/.github/workflows/dbt_run_selfhosted_template.yml @@ -72,8 +72,29 @@ jobs: run: echo "started=true" >> $GITHUB_OUTPUT - uses: actions/checkout@v3 + id: checkout + continue-on-error: true + + - name: Wait before checkout retry + if: steps.checkout.outcome == 'failure' + run: sleep 15 + + - uses: actions/checkout@v3 + if: steps.checkout.outcome == 'failure' + + - uses: actions/setup-python@v4 + id: setup-python + continue-on-error: true + with: + python-version: "3.10" + cache: "pip" + + - name: Wait before setup-python retry + if: steps.setup-python.outcome == 'failure' + run: sleep 15 - uses: actions/setup-python@v4 + if: steps.setup-python.outcome == 'failure' with: python-version: "3.10" cache: "pip" @@ -99,8 +120,29 @@ jobs: steps: - uses: actions/checkout@v3 + id: checkout-fallback + continue-on-error: true + + - name: Wait before checkout retry + if: steps.checkout-fallback.outcome == 'failure' + run: sleep 15 + + - uses: actions/checkout@v3 + if: steps.checkout-fallback.outcome == 'failure' + + - uses: actions/setup-python@v4 + id: setup-python-fallback + continue-on-error: true + with: + python-version: "3.10" + cache: "pip" + + - name: Wait before setup-python retry + if: steps.setup-python-fallback.outcome == 'failure' + run: sleep 15 - uses: actions/setup-python@v4 + if: steps.setup-python-fallback.outcome == 'failure' with: python-version: "3.10" cache: "pip"