From cce22030ac0682c13a1e6494cb112a02d968ad49 Mon Sep 17 00:00:00 2001 From: Joseph Hughes Date: Sun, 6 Sep 2026 06:31:52 -0500 Subject: [PATCH] ci: retry the modflow executable download The executables are fetched from github at the start of every test job. One job of thirty failed on develop when that connection was reset, before any test ran. The download is attempted twice before the job fails. The step in the release workflow is already conditional, so its retry combines that condition with the outcome of the first attempt rather than carrying a second if key. --- .github/workflows/ci.yml | 34 ++++++++++++++++++++++++++++++++++ .github/workflows/release.yml | 11 +++++++++++ 2 files changed, 45 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 45433d0..3bbb2c3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -85,6 +85,17 @@ jobs: run: uv sync --all-extras - name: Install modflow executables + id: install_modflow + continue-on-error: true + uses: modflowpy/install-modflow-action@v1 + with: + path: ${{ github.workspace }}/autotest + repo: modflow6-nightly-build + + # the download reaches out to github and occasionally has its + # connection reset, failing the job before any test runs + - name: Install modflow executables (retry) + if: steps.install_modflow.outcome == 'failure' uses: modflowpy/install-modflow-action@v1 with: path: ${{ github.workspace }}/autotest @@ -125,6 +136,18 @@ jobs: run: uv sync --all-extras - name: Install modflow executables + id: install_modflow + continue-on-error: true + uses: modflowpy/install-modflow-action@v1 + with: + path: ${{ github.workspace }}/autotest + repo: executables + tag: "14.0" + + # the download reaches out to github and occasionally has its + # connection reset, failing the job before any test runs + - name: Install modflow executables (retry) + if: steps.install_modflow.outcome == 'failure' uses: modflowpy/install-modflow-action@v1 with: path: ${{ github.workspace }}/autotest @@ -166,6 +189,17 @@ jobs: run: uv sync --all-extras - name: Install modflow6 nightly build + id: install_modflow + continue-on-error: true + uses: modflowpy/install-modflow-action@v1 + with: + path: ${{ github.workspace }}/autotest + repo: modflow6-nightly-build + + # the download reaches out to github and occasionally has its + # connection reset, failing the job before any test runs + - name: Install modflow6 nightly build (retry) + if: steps.install_modflow.outcome == 'failure' uses: modflowpy/install-modflow-action@v1 with: path: ${{ github.workspace }}/autotest diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c97543c..7239085 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -112,6 +112,17 @@ jobs: - name: Install modflow executables if: ${{ github.event_name != 'workflow_dispatch' || inputs.run_tests }} + id: install_modflow + continue-on-error: true + uses: modflowpy/install-modflow-action@v1 + with: + path: ${{ github.workspace }}/autotest + repo: modflow6-nightly-build + + # the download reaches out to github and occasionally has its + # connection reset, failing the job before any test runs + - name: Install modflow executables (retry) + if: ${{ (github.event_name != 'workflow_dispatch' || inputs.run_tests) && steps.install_modflow.outcome == 'failure' }} uses: modflowpy/install-modflow-action@v1 with: path: ${{ github.workspace }}/autotest