From 061245cd1342680fd620932246cfa98ad0a21e26 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 27 May 2026 04:41:27 +0000 Subject: [PATCH 1/8] Initial plan From 5366080fb3db7e53f7b68857fafedcd7a6bb46c5 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 27 May 2026 04:53:08 +0000 Subject: [PATCH 2/8] Retry deployment build step on transient package download failures Co-authored-by: davidfowl <95136+davidfowl@users.noreply.github.com> --- .github/workflows/deployment-tests.yml | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/.github/workflows/deployment-tests.yml b/.github/workflows/deployment-tests.yml index 45d1a02ae3c..457621b7db1 100644 --- a/.github/workflows/deployment-tests.yml +++ b/.github/workflows/deployment-tests.yml @@ -95,8 +95,22 @@ jobs: - name: Build solution and pack CLI run: | - # Build the full solution and pack CLI for local testing - ./build.sh --build --pack -c Release + # Build the full solution and pack CLI for local testing. + # Retry because this step can intermittently fail on package downloads from dotnet-public. + for attempt in 1 2 3; do + if ./build.sh --build --pack -c Release; then + break + fi + + if [ "$attempt" -eq 3 ]; then + echo "Build failed after 3 attempts." + exit 1 + fi + + sleep_seconds=$((attempt * 20)) + echo "Build failed on attempt $attempt. Retrying in ${sleep_seconds}s..." + sleep "$sleep_seconds" + done env: # Skip native build to save time - we'll use the non-native CLI SkipNativeBuild: true From 8a2ddfe96d66c704977d816d8d4d19b527cf7598 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 27 May 2026 04:54:23 +0000 Subject: [PATCH 3/8] Tune NuGet network retries for deployment build step Co-authored-by: davidfowl <95136+davidfowl@users.noreply.github.com> --- .github/workflows/deployment-tests.yml | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/.github/workflows/deployment-tests.yml b/.github/workflows/deployment-tests.yml index 457621b7db1..08cf003cfe7 100644 --- a/.github/workflows/deployment-tests.yml +++ b/.github/workflows/deployment-tests.yml @@ -96,24 +96,14 @@ jobs: - name: Build solution and pack CLI run: | # Build the full solution and pack CLI for local testing. - # Retry because this step can intermittently fail on package downloads from dotnet-public. - for attempt in 1 2 3; do - if ./build.sh --build --pack -c Release; then - break - fi - - if [ "$attempt" -eq 3 ]; then - echo "Build failed after 3 attempts." - exit 1 - fi - - sleep_seconds=$((attempt * 20)) - echo "Build failed on attempt $attempt. Retrying in ${sleep_seconds}s..." - sleep "$sleep_seconds" - done + ./build.sh --build --pack -c Release env: # Skip native build to save time - we'll use the non-native CLI SkipNativeBuild: true + # This build intermittently fails while restoring WorkerExtensions packages from dotnet-public. + # Increase NuGet's per-request retries instead of retrying the whole build step. + NUGET_ENHANCED_MAX_NETWORK_TRY_COUNT: 10 + NUGET_ENHANCED_NETWORK_RETRY_DELAY_MILLISECONDS: 2000 - name: Prepare CLI artifacts run: | From 20b3190ba607394f2df9f8de1c147ad9cca69a74 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 27 May 2026 05:01:26 +0000 Subject: [PATCH 4/8] Allow deployment test artifact upload failures Co-authored-by: davidfowl <95136+davidfowl@users.noreply.github.com> --- .github/workflows/deployment-tests.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/deployment-tests.yml b/.github/workflows/deployment-tests.yml index 08cf003cfe7..9ba730248ad 100644 --- a/.github/workflows/deployment-tests.yml +++ b/.github/workflows/deployment-tests.yml @@ -290,6 +290,7 @@ jobs: - name: Upload test results if: always() + continue-on-error: true uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0 with: name: deployment-test-results-${{ matrix.shortname }} @@ -299,6 +300,7 @@ jobs: - name: Upload recordings if: always() + continue-on-error: true uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0 with: name: deployment-test-recordings-${{ matrix.shortname }} From 5bf05e231bac68d839ff8428bc42eb8cc5c0f124 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 27 May 2026 05:03:29 +0000 Subject: [PATCH 5/8] Document deployment build retry settings Co-authored-by: davidfowl <95136+davidfowl@users.noreply.github.com> --- .github/workflows/deployment-tests.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/deployment-tests.yml b/.github/workflows/deployment-tests.yml index 9ba730248ad..b407fb74ba7 100644 --- a/.github/workflows/deployment-tests.yml +++ b/.github/workflows/deployment-tests.yml @@ -101,7 +101,8 @@ jobs: # Skip native build to save time - we'll use the non-native CLI SkipNativeBuild: true # This build intermittently fails while restoring WorkerExtensions packages from dotnet-public. - # Increase NuGet's per-request retries instead of retrying the whole build step. + # Arcade sets NuGet's enhanced retry defaults to 6 tries with a 1s base delay in CI; this + # step gives NuGet more room to retry individual package downloads without rerunning the build. NUGET_ENHANCED_MAX_NETWORK_TRY_COUNT: 10 NUGET_ENHANCED_NETWORK_RETRY_DELAY_MILLISECONDS: 2000 From 40e01095bb9a43e3d9afe0d24d7a761c8cd0dc13 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 27 May 2026 05:28:59 +0000 Subject: [PATCH 6/8] Scope NuGet retry settings to shared CI builds Co-authored-by: davidfowl <95136+davidfowl@users.noreply.github.com> --- .github/workflows/build-cli-native-archives.yml | 4 ++++ .github/workflows/build-packages.yml | 7 ++++++- .github/workflows/deployment-tests.yml | 11 ++++++----- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build-cli-native-archives.yml b/.github/workflows/build-cli-native-archives.yml index 22dde6ad906..2e3eb298d27 100644 --- a/.github/workflows/build-cli-native-archives.yml +++ b/.github/workflows/build-cli-native-archives.yml @@ -48,6 +48,10 @@ jobs: # separate parse of the version suffix at runtime. env: ASPIRE_CLI_CHANNEL: ${{ github.event_name == 'pull_request' && format('pr-{0}', github.event.pull_request.number) || (startsWith(github.ref, 'refs/heads/release/') || startsWith(github.ref, 'refs/heads/internal/release/')) && 'staging' || 'daily' }} + # Arcade sets NuGet's enhanced retry defaults to 6 tries with a 1s base delay in CI; these + # restore-heavy jobs need more room to retry individual package downloads without rerunning. + NUGET_ENHANCED_MAX_NETWORK_TRY_COUNT: 10 + NUGET_ENHANCED_NETWORK_RETRY_DELAY_MILLISECONDS: 2000 steps: - name: Checkout code diff --git a/.github/workflows/build-packages.yml b/.github/workflows/build-packages.yml index cee838ba1c8..5d2500bea4f 100644 --- a/.github/workflows/build-packages.yml +++ b/.github/workflows/build-packages.yml @@ -7,6 +7,12 @@ on: required: false type: string +env: + # Arcade sets NuGet's enhanced retry defaults to 6 tries with a 1s base delay in CI; these + # restore-heavy jobs need more room to retry individual package downloads without rerunning. + NUGET_ENHANCED_MAX_NETWORK_TRY_COUNT: 10 + NUGET_ENHANCED_NETWORK_RETRY_DELAY_MILLISECONDS: 2000 + jobs: build_packages: name: Build packages @@ -39,4 +45,3 @@ jobs: name: build_packages_logs path: artifacts/log retention-days: 5 - diff --git a/.github/workflows/deployment-tests.yml b/.github/workflows/deployment-tests.yml index b407fb74ba7..2ae166169c4 100644 --- a/.github/workflows/deployment-tests.yml +++ b/.github/workflows/deployment-tests.yml @@ -12,6 +12,12 @@ # name: Deployment E2E Tests +env: + # Arcade sets NuGet's enhanced retry defaults to 6 tries with a 1s base delay in CI; these + # restore-heavy jobs need more room to retry individual package downloads without rerunning. + NUGET_ENHANCED_MAX_NETWORK_TRY_COUNT: 10 + NUGET_ENHANCED_NETWORK_RETRY_DELAY_MILLISECONDS: 2000 + on: workflow_dispatch: inputs: @@ -100,11 +106,6 @@ jobs: env: # Skip native build to save time - we'll use the non-native CLI SkipNativeBuild: true - # This build intermittently fails while restoring WorkerExtensions packages from dotnet-public. - # Arcade sets NuGet's enhanced retry defaults to 6 tries with a 1s base delay in CI; this - # step gives NuGet more room to retry individual package downloads without rerunning the build. - NUGET_ENHANCED_MAX_NETWORK_TRY_COUNT: 10 - NUGET_ENHANCED_NETWORK_RETRY_DELAY_MILLISECONDS: 2000 - name: Prepare CLI artifacts run: | From 2563b1155e51e2d85c36656a0a6b20b71fd0b0a5 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 27 May 2026 05:30:44 +0000 Subject: [PATCH 7/8] Use workflow-level NuGet retries for CLI archive builds Co-authored-by: davidfowl <95136+davidfowl@users.noreply.github.com> --- .github/workflows/build-cli-native-archives.yml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build-cli-native-archives.yml b/.github/workflows/build-cli-native-archives.yml index 2e3eb298d27..92fb1ba77c8 100644 --- a/.github/workflows/build-cli-native-archives.yml +++ b/.github/workflows/build-cli-native-archives.yml @@ -25,6 +25,12 @@ on: {"os": "macos-latest", "runner": "macos-latest", "rids": "osx-arm64"} ] +env: + # Arcade sets NuGet's enhanced retry defaults to 6 tries with a 1s base delay in CI; these + # restore-heavy jobs need more room to retry individual package downloads without rerunning. + NUGET_ENHANCED_MAX_NETWORK_TRY_COUNT: 10 + NUGET_ENHANCED_NETWORK_RETRY_DELAY_MILLISECONDS: 2000 + jobs: build_cli_archives: @@ -48,10 +54,6 @@ jobs: # separate parse of the version suffix at runtime. env: ASPIRE_CLI_CHANNEL: ${{ github.event_name == 'pull_request' && format('pr-{0}', github.event.pull_request.number) || (startsWith(github.ref, 'refs/heads/release/') || startsWith(github.ref, 'refs/heads/internal/release/')) && 'staging' || 'daily' }} - # Arcade sets NuGet's enhanced retry defaults to 6 tries with a 1s base delay in CI; these - # restore-heavy jobs need more room to retry individual package downloads without rerunning. - NUGET_ENHANCED_MAX_NETWORK_TRY_COUNT: 10 - NUGET_ENHANCED_NETWORK_RETRY_DELAY_MILLISECONDS: 2000 steps: - name: Checkout code From 0d444695c27df1729eca4d32342237cfcc6030dc Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 27 May 2026 15:52:03 +0000 Subject: [PATCH 8/8] Allow test result uploads to continue on error Co-authored-by: davidfowl <95136+davidfowl@users.noreply.github.com> --- .github/workflows/run-tests.yml | 1 + .github/workflows/specialized-test-runner.yml | 1 + .github/workflows/tests-daily-smoke.yml | 1 + .github/workflows/tests.yml | 1 + 4 files changed, 4 insertions(+) diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index f295648f7aa..a6834d0c990 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -642,6 +642,7 @@ jobs: - name: Upload logs, and test results id: upload-logs if: always() + continue-on-error: true uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0 with: name: logs-${{ inputs.testShortName }}-${{ inputs.os }} diff --git a/.github/workflows/specialized-test-runner.yml b/.github/workflows/specialized-test-runner.yml index a44145b212e..517b17562a0 100644 --- a/.github/workflows/specialized-test-runner.yml +++ b/.github/workflows/specialized-test-runner.yml @@ -118,6 +118,7 @@ jobs: - name: Upload logs, and test results if: ${{ always() }} + continue-on-error: true uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0 with: name: logs-runsheet diff --git a/.github/workflows/tests-daily-smoke.yml b/.github/workflows/tests-daily-smoke.yml index 62c86da7cf0..6d1c5c2f88c 100644 --- a/.github/workflows/tests-daily-smoke.yml +++ b/.github/workflows/tests-daily-smoke.yml @@ -91,6 +91,7 @@ jobs: - name: Upload logs and test results id: upload-logs if: always() + continue-on-error: true uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0 with: name: smoke-test-results-${{ inputs.quality || 'dev' }} diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 0e07409471b..ab6db24d626 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -403,6 +403,7 @@ jobs: - name: Upload test results if: always() + continue-on-error: true uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0 with: name: All-TestResults