From 7b56869d15934989efbc4615b0b088d19dae9f70 Mon Sep 17 00:00:00 2001 From: Jahnvi Thakkar Date: Fri, 14 Aug 2026 17:50:27 +0530 Subject: [PATCH] CHORE: Fix macOS CI job timeout and reduce setup overhead The macOS PR-validation job set no job-level timeoutInMinutes, so it inherited the ADO 60-minute default. When the Colima + SQL Server container setup hit its long tail (observed 17-39 min vs a ~12.5 min average), the setup plus tests plus the 20-minute benchmark step exceeded 60 min and the job was killed mid-step. - Add timeoutInMinutes: 90 to the PytestOnMacOS job so the setup tail plus tests plus benchmarks fit within budget. - Remove two redundant 'brew update' calls (CMake and Colima steps); the hosted runner ships an up-to-date Homebrew and each update re-syncs the whole formula index (network-bound, ~1-3 min) for no benefit. --- eng/pipelines/pr-validation-pipeline.yml | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/eng/pipelines/pr-validation-pipeline.yml b/eng/pipelines/pr-validation-pipeline.yml index f0323fb0..b5a23a60 100644 --- a/eng/pipelines/pr-validation-pipeline.yml +++ b/eng/pipelines/pr-validation-pipeline.yml @@ -461,6 +461,11 @@ jobs: - job: PytestOnMacOS displayName: 'macOS x86_64' + # Colima + SQL Server container setup averages ~12.5 min but has a long tail + # (setup has been observed at 17-39 min). The ADO default job timeout is 60 min, + # which the setup tail plus tests plus the 20-min benchmark step can exceed, + # getting the job killed mid-step. Give the job enough headroom for the tail. + timeoutInMinutes: 90 pool: vmImage: 'macos-latest' @@ -483,7 +488,9 @@ jobs: displayName: 'Use Python $(pythonVersion) on macOS' - script: | - brew update + # Note: no `brew update` here. The hosted macOS runner ships an up-to-date + # Homebrew; `brew update` re-syncs the entire formula index (network-bound, + # ~1-3 min) for no benefit and is a large chunk of setup time. # Uninstall existing CMake to avoid tap conflicts brew uninstall cmake --ignore-dependencies || echo "CMake not installed or already removed" # Install CMake from homebrew/core @@ -491,7 +498,8 @@ jobs: displayName: 'Install CMake' - script: | - brew update + # No `brew update` (see the CMake step) - it re-syncs the whole formula + # index and is pure setup overhead on an already-current runner. brew install docker colima # Start Colima with extra resources