Skip to content

Conversation

asp2286
Copy link

@asp2286 asp2286 commented Sep 18, 2025

PR: macOS x64 CI: fix dependency install and OpenMP runtime copy

Summary

This PR fixes MachineLearning-CI failures on macOS x64 where jobs stop at Install MacOS build dependencies with:

Bash exited with code '1'

The breakage comes from two areas:

  1. Dependency install: The pipeline relied on a custom libomp.rb path that no longer works on hosted macOS images.
  2. Helix payload: The script attempted to copy both libomp.dylib and libiomp5.dylib, but libiomp5.dylib is not available when installing libomp from Homebrew core.

Fixes #7509


Changes

build/ci/job-template.yml

  • Replace custom brew install …/build/libomp.rb with standard Homebrew:
    brew update
    brew install -f --overwrite [email protected]
    brew install libomp
    brew link libomp --force
  • Note added: Homebrew ≥4.6 rejects installing formulae from raw paths.

eng/helix.proj

  • macOS x64 only:
    • Set DYLD_LIBRARY_PATH so Helix can find libomp.dylib.
    • Copy only /usr/local/opt/libomp/lib/libomp.dylib into the publish folder.
    • Remove copying of libiomp5.dylib (not present with libomp from Homebrew).
    • Add install-name fix so binaries reference @loader_path/libomp.dylib.

Why

  • Hosted macOS runners changed: raw formula paths are blocked, and only libomp is available via core.
  • Ensures reliable dependency install and payload runtime linking.
  • Other platforms (Linux, Windows, macOS arm64) are unaffected.

Testing

  • Reproduced failure on osx.13.amd64.open queue.
  • With these changes:
    • Dependency install step completes successfully.
    • libomp.dylib is present in publish folder.
    • Helix payload runs with DYLD_LIBRARY_PATH set correctly.
  • Validated in a test run: both macOS x64 Debug/Release proceed past dependency install and build succeeds.

Risk / Impact

  • Low: scoped only to macOS x64 build dependencies and Helix payload.
  • No product code changes, only CI infra adjustments.

Additional Notes

  • Linux and Windows jobs were already green.
  • If maintainers prefer llvm over libomp as the OpenMP provider, happy to adjust.

PR Checklist

Copy link

Commenter does not have sufficient privileges for PR 7510 in repo dotnet/machinelearning

Copy link

codecov bot commented Sep 18, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 69.01%. Comparing base (fb39755) to head (47bb847).

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #7510   +/-   ##
=======================================
  Coverage   69.01%   69.01%           
=======================================
  Files        1482     1482           
  Lines      273999   273999           
  Branches    28258    28258           
=======================================
+ Hits       189093   189107   +14     
+ Misses      77520    77508   -12     
+ Partials     7386     7384    -2     
Flag Coverage Δ
Debug 69.01% <ø> (+<0.01%) ⬆️
production 63.31% <ø> (+<0.01%) ⬆️
test 89.46% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.
see 5 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Copy link

Commenter does not have sufficient privileges for PR 7510 in repo dotnet/machinelearning

@asp2286 asp2286 marked this pull request as draft September 18, 2025 12:03
@asp2286 asp2286 marked this pull request as ready for review September 18, 2025 12:03
@asp2286 asp2286 force-pushed the fix/macos-x64-libomp branch from 6c0c6a4 to 47bb847 Compare September 18, 2025 12:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

MacOS_x64 Debug/Release build jobs fail in MachineLearning-CI: “Bash exited with code '1' – Install MacOS build dependencies”
1 participant