diff --git a/.github/mergify.yml b/.github/mergify.yml index 363f575dc5..7245df76d9 100644 --- a/.github/mergify.yml +++ b/.github/mergify.yml @@ -46,6 +46,9 @@ misc: - when_code_check_ubuntu_success: &WHEN_CODE_CHECK_UBUNTU_SUCCESS - 'status-success=Code Checker AMD64 Ubuntu 22.04' - 'status-success=ci-v2/code-check' + - when_code_check_macos_success: &WHEN_CODE_CHECK_MACOS_SUCCESS + - 'status-success=Code Checker MacOS 13' + - 'status-success=Code Checker MacOS' # Branch configurations - branch: &BRANCHES @@ -103,7 +106,7 @@ pull_request_rules: - or: *WHEN_INTEGRATION_UNIT_TEST_SUCCESS - or: *WHEN_E2E_TEST_SUCCESS - or: *WHEN_CODE_CHECK_UBUNTU_SUCCESS - - 'status-success=Code Checker MacOS 13' + - or: *WHEN_CODE_CHECK_MACOS_SUCCESS # - 'status-success=codecov/patch' # - 'status-success=codecov/project' actions: @@ -121,7 +124,7 @@ pull_request_rules: - or: *WHEN_INTEGRATION_UNIT_TEST_SUCCESS - or: *WHEN_E2E_TEST_SUCCESS - or: *WHEN_CODE_CHECK_UBUNTU_SUCCESS - - 'status-success=Code Checker MacOS 13' + - or: *WHEN_CODE_CHECK_MACOS_SUCCESS # - 'status-success=codecov/patch' # - 'status-success=codecov/project' actions: @@ -165,7 +168,7 @@ pull_request_rules: - *only_go_unittest_files - or: *WHEN_BUILD_SUCCESS - or: *WHEN_CODE_CHECK_UBUNTU_SUCCESS - - 'status-success=Code Checker MacOS 13' + - or: *WHEN_CODE_CHECK_MACOS_SUCCESS - or: *WHEN_GO_UNIT_TEST_SUCCESS actions: label: @@ -202,7 +205,7 @@ pull_request_rules: - or: *WHEN_GO_UNIT_TEST_SUCCESS - or: *WHEN_INTEGRATION_UNIT_TEST_SUCCESS - or: *WHEN_CODE_CHECK_UBUNTU_SUCCESS - - 'status-success=Code Checker MacOS 13' + - or: *WHEN_CODE_CHECK_MACOS_SUCCESS - *source_code_files actions: label: @@ -289,8 +292,15 @@ pull_request_rules: - or: - status-failure = Code Checker AMD64 Ubuntu 22.04 - status-failure = ci-v2/code-check - - or: - - status-success != Code Checker MacOS 13 + # Code checker MacOS: remove if no success AND has failure + - and: + - not: + or: + - status-success = Code Checker MacOS 13 + - status-success = Code Checker MacOS + - or: + - status-failure = Code Checker MacOS 13 + - status-failure = Code Checker MacOS # E2E tests: regular case - remove if no success AND has failure - and: - not: diff --git a/.github/workflows/mac.yaml b/.github/workflows/mac.yaml index 4b0739b1e0..057e2422ff 100644 --- a/.github/workflows/mac.yaml +++ b/.github/workflows/mac.yaml @@ -42,8 +42,8 @@ concurrency: jobs: mac: - name: Code Checker MacOS 13 - runs-on: macos-13 + name: Code Checker MacOS + runs-on: macos-15-intel timeout-minutes: 360 steps: - name: Checkout @@ -56,18 +56,23 @@ jobs: python-version: '<3.12' - name: Install CMake 3.31.8 run: | - cmake --version - which cmake - brew uninstall cmake -f + cmake --version || true + which cmake || true + if ! brew list cmake &>/dev/null; then + brew uninstall cmake -f + fi curl -LO https://github.com/Kitware/CMake/releases/download/v3.31.8/cmake-3.31.8-macos-universal.tar.gz tar -zxf cmake-3.31.8-macos-universal.tar.gz -C /tmp/ sudo mv /tmp/cmake-3.31.8-macos-universal/CMake.app /Applications/ + sudo rm -f /usr/local/bin/cmake /usr/local/bin/cpack /usr/local/bin/ctest + sudo rm -f /opt/homebrew/bin/cmake /opt/homebrew/bin/cpack /opt/homebrew/bin/ctest echo -e "\n=== Creating symlinks for CMake ===" sudo ln -s /Applications/CMake.app/Contents/bin/cmake /usr/local/bin/cmake sudo ln -s /Applications/CMake.app/Contents/bin/cpack /usr/local/bin/cpack sudo ln -s /Applications/CMake.app/Contents/bin/ctest /usr/local/bin/ctest CMAKE_MODULE_DIR="/Applications/CMake.app/Contents/share/cmake-3.31" - sudo ln -s "$CMAKE_MODULE_DIR" /usr/local/share/cmake-3.31 + sudo ln -s "$CMAKE_MODULE_DIR" /usr/local/share/cmake-3.31 + export PATH="/usr/local/bin:$PATH" cmake --version which cmake - name: Setup Go environment @@ -88,12 +93,14 @@ jobs: if [[ ! -d "/var/tmp/ccache" ]];then mkdir -p /var/tmp/ccache fi - ls -alh /var/tmp/ccache brew install libomp ninja openblas ccache pkg-config - pip3 install conan==1.64.1 - if [[ ! -d "/usr/local/opt/llvm" ]]; then - ln -s /usr/local/opt/llvm@14 /usr/local/opt/llvm + BREW_PREFIX=$(brew --prefix) + # Install llvm@17 explicitly as a stable version + brew install llvm@17 + if [[ ! -d "${BREW_PREFIX}/opt/llvm" ]]; then + ln -s ${BREW_PREFIX}/opt/llvm@17 ${BREW_PREFIX}/opt/llvm fi + pip3 install conan==1.64.1 make milvus - name: Upload Cmake log uses: actions/upload-artifact@v4