Skip to content
Open
Show file tree
Hide file tree
Changes from 17 commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
f6679eb
update to mac-14 arm64
akashchi Aug 5, 2025
e7afd2c
update target arch
akashchi Aug 5, 2025
ac8e042
Merge branch 'master' into ci/gha/migrate-macos-to-arm
Wovchena Aug 7, 2025
92f235f
use dedicated product type
akashchi Aug 7, 2025
fedcae6
Merge branch 'ci/gha/migrate-macos-to-arm' of https://github.com/akas…
akashchi Aug 7, 2025
e77193b
more time
akashchi Aug 8, 2025
59fe335
Merge remote-tracking branch 'upstream/master' into ci/gha/migrate-ma…
akashchi Aug 8, 2025
292273e
use larger runner
akashchi Aug 8, 2025
90cbf5c
use arm64
akashchi Aug 8, 2025
2d0ba4d
provide arch
akashchi Aug 8, 2025
603eb8b
use larger
akashchi Aug 8, 2025
ae99735
Merge remote-tracking branch 'upstream/master' into ci/gha/migrate-ma…
akashchi Aug 11, 2025
0139b03
set parallel
akashchi Aug 11, 2025
117d688
use nproc for nodejs
akashchi Aug 11, 2025
81c137d
use -1
akashchi Aug 11, 2025
632999e
Merge remote-tracking branch 'upstream/master' into ci/gha/migrate-ma…
akashchi Aug 15, 2025
81504b0
skip some tests
akashchi Aug 15, 2025
7236ac1
use large
akashchi Aug 15, 2025
94802ee
rm core count
akashchi Aug 15, 2025
6437370
merge
akashchi Aug 27, 2025
f5dc051
rm unused
akashchi Aug 27, 2025
b23f32e
rm +cpu for mac arm64
akashchi Aug 28, 2025
ac00c4b
Merge remote-tracking branch 'upstream/master' into ci/gha/migrate-ma…
akashchi Aug 28, 2025
73ccda8
Merge remote-tracking branch 'upstream/master' into ci/gha/migrate-ma…
akashchi Sep 2, 2025
dab4369
Merge branch 'master' into ci/gha/migrate-macos-to-arm
akashchi Sep 4, 2025
968e8e7
skip memory ones
akashchi Sep 5, 2025
8ce006d
Merge remote-tracking branch 'upstream/master' into ci/gha/migrate-ma…
akashchi Sep 5, 2025
655f58e
Merge branch 'ci/gha/migrate-macos-to-arm' of https://github.com/akas…
akashchi Sep 5, 2025
b08dd3a
Merge remote-tracking branch 'upstream/master' into ci/gha/migrate-ma…
akashchi Sep 8, 2025
6b58a63
adjust threshold
akashchi Sep 8, 2025
d9b1cb8
adjust threshold once more
akashchi Sep 8, 2025
a87bec6
skip on mac, adjust threshold
akashchi Sep 8, 2025
34cbe61
skip more tests, check LD paths
akashchi Sep 9, 2025
1e70386
Merge remote-tracking branch 'upstream/master' into ci/gha/migrate-ma…
akashchi Sep 9, 2025
ef1c275
Merge remote-tracking branch 'upstream/master' into ci/gha/migrate-ma…
akashchi Sep 15, 2025
f78ce54
use 3.11
akashchi Sep 15, 2025
375a1c0
more skips
akashchi Sep 15, 2025
8c31ddb
comment out
akashchi Sep 15, 2025
79ef565
fix lint
akashchi Sep 15, 2025
8ed9bcf
rm whtspc
akashchi Sep 16, 2025
970138e
Merge remote-tracking branch 'upstream/master' into ci/gha/migrate-ma…
akashchi Sep 16, 2025
3ab34ab
rm unnecessary
akashchi Sep 16, 2025
0afc3fe
Merge branch 'master' into ci/gha/migrate-macos-to-arm
akashchi Sep 17, 2025
02eb1f0
Merge branch 'master' into ci/gha/migrate-macos-to-arm
akashchi Sep 22, 2025
a38cb7f
merge
akashchi Sep 26, 2025
c85dae0
Merge branch 'ci/gha/migrate-macos-to-arm' of https://github.com/akas…
akashchi Sep 26, 2025
444923e
skip more tests
akashchi Sep 29, 2025
bda1a56
Merge branch 'master' into ci/gha/migrate-macos-to-arm
akashchi Sep 30, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
66 changes: 37 additions & 29 deletions .github/workflows/mac.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: macOS (13, Python 3.10)
name: macOS (14, Python 3.10)
on:
workflow_dispatch:
pull_request:
Expand All @@ -19,7 +19,7 @@ env:
MACOSX_DEPLOYMENT_TARGET: '11.0'
PYTHON_VERSION: '3.10'
TARGET_BRANCH: ${{ github.base_ref || github.event.merge_group.base_ref || github.ref }}
BASE_PRODUCT_TYPE: public_darwin
BASE_PRODUCT_TYPE: public_macos_arm64
CCACHE_MAXSIZE: 500Mi
HF_HOME: ~/.cache/hf
OV_CACHE: ~/.cache/ov_cache/194c936
Expand Down Expand Up @@ -81,7 +81,8 @@ jobs:
- uses: openvinotoolkit/openvino/.github/actions/openvino_provider@master
id: openvino_download
with:
platform: macos_12_6
platform: macos_14_7
arch: 'arm64'
commit_packages_to_provide: wheels,developer_package.tar.gz,openvino_node_npm_package.tar.gz
revision: latest_available_commit

Expand All @@ -96,7 +97,7 @@ jobs:
defaults:
run:
shell: bash
runs-on: macos-13
runs-on: macos-14
env:
CMAKE_GENERATOR: Ninja
CMAKE_CXX_COMPILER_LAUNCHER: ccache
Expand Down Expand Up @@ -148,7 +149,7 @@ jobs:
with:
repos: ${{ env.SRC_DIR }}
product_type: ${{ env.BASE_PRODUCT_TYPE }}_${{ matrix.build-type }}
target_arch: 'x86_64'
target_arch: 'arm64'
build_type: ${{ matrix.build-type }}
save_to: ${{ env.MANIFEST_PATH }}

Expand All @@ -161,7 +162,7 @@ jobs:
cmake -DOpenVINODeveloperPackage_DIR=${{ env.OV_INSTALL_DIR }}/developer_package/cmake \
-DENABLE_PYTHON=ON \
-DCMAKE_BUILD_TYPE=${{ matrix.build-type }} \
-S ${{ env.SRC_DIR}} \
-S ${{ env.SRC_DIR }} \
-B ${{ env.BUILD_DIR }}
cmake --build ${{ env.BUILD_DIR}} --config ${{ matrix.build-type }} --parallel $(nproc) --verbose
cmake --install ${{ env.BUILD_DIR }} --config ${{ matrix.build-type }} --prefix ${{ env.INSTALL_DIR }}
Expand Down Expand Up @@ -216,7 +217,7 @@ jobs:
defaults:
run:
shell: bash
runs-on: macos-13
runs-on: macos-14
env:
CCACHE_DIR: ${{ github.workspace }}/ccache
CMAKE_CXX_COMPILER_LAUNCHER: ccache
Expand Down Expand Up @@ -265,7 +266,7 @@ jobs:
with:
repos: ${{ env.SRC_DIR }}
product_type: ${{ env.BASE_PRODUCT_TYPE }}_Release
target_arch: 'x86_64'
target_arch: 'arm64'
build_type: Release
save_to: ${{ github.workspace }}

Expand All @@ -274,6 +275,7 @@ jobs:

- name: Build Tokenizers Wheel
run: |
export CMAKE_BUILD_PARALLEL_LEVEL=$(( $(nproc) - 1 ))
Copy link
Preview

Copilot AI Aug 15, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The nproc command is not available on macOS. Use sysctl -n hw.ncpu instead to get the number of CPU cores on macOS.

Suggested change
export CMAKE_BUILD_PARALLEL_LEVEL=$(( $(nproc) - 1 ))
export CMAKE_BUILD_PARALLEL_LEVEL=$(( $(sysctl -n hw.ncpu) - 1 ))

Copilot uses AI. Check for mistakes.

python -m pip wheel -v --no-deps --wheel-dir ${{ env.WHEELS_DIR }} \
--config-settings='override=wheel.build_tag="${{ github.run_number }}"' \
${{ needs.openvino_download.outputs.ov_wheel_source }} \
Expand All @@ -282,13 +284,16 @@ jobs:

- name: Build GenAI Wheel
run: |
export CMAKE_BUILD_PARALLEL_LEVEL=$(( $(nproc) - 1 ))
Copy link
Preview

Copilot AI Aug 15, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The nproc command is not available on macOS. Use sysctl -n hw.ncpu instead to get the number of CPU cores on macOS.

Suggested change
export CMAKE_BUILD_PARALLEL_LEVEL=$(( $(nproc) - 1 ))
export CMAKE_BUILD_PARALLEL_LEVEL=$(( $(sysctl -n hw.ncpu) - 1 ))

Copilot uses AI. Check for mistakes.

python -m pip wheel -v --no-deps --wheel-dir ${{ env.WHEELS_DIR }} \
${{ needs.openvino_download.outputs.ov_wheel_source }} \
${{ env.SRC_DIR }}
working-directory: ${{ env.OV_INSTALL_DIR }}

- name: Build WWB Wheel
run: python -m pip wheel -v --no-deps --wheel-dir ${{ env.WHEELS_DIR }} ${{ env.SRC_DIR }}/tools/who_what_benchmark
run: |
export CMAKE_BUILD_PARALLEL_LEVEL=$(( $(nproc) - 1 ))
Copy link
Preview

Copilot AI Aug 15, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The nproc command is not available on macOS. Use sysctl -n hw.ncpu instead to get the number of CPU cores on macOS.

Suggested change
export CMAKE_BUILD_PARALLEL_LEVEL=$(( $(nproc) - 1 ))
export CMAKE_BUILD_PARALLEL_LEVEL=$(( $(sysctl -n hw.ncpu) - 1 ))

Copilot uses AI. Check for mistakes.

python -m pip wheel -v --no-deps --wheel-dir ${{ env.WHEELS_DIR }} ${{ env.SRC_DIR }}/tools/who_what_benchmark
working-directory: ${{ env.OV_INSTALL_DIR }}

- name: Save ccache
Expand Down Expand Up @@ -317,7 +322,7 @@ jobs:
defaults:
run:
shell: bash
runs-on: macos-13
runs-on: macos-14
env:
OV_INSTALL_DIR: ${{ github.workspace }}/ov
INSTALL_DIR: ${{ github.workspace }}/install
Expand Down Expand Up @@ -369,11 +374,11 @@ jobs:
matrix:
build-type: [Release]
needs: [ openvino_download ]
timeout-minutes: 30
timeout-minutes: 50
defaults:
run:
shell: bash
runs-on: macos-13
runs-on: macos-14

env:
SRC_DIR: ${{ github.workspace }}/openvino.genai
Expand Down Expand Up @@ -405,7 +410,7 @@ jobs:
-DENABLE_JS=ON -DCPACK_GENERATOR=NPM \
-DENABLE_PYTHON=OFF -DENABLE_WHEEL=OFF \
-S ${{ env.SRC_DIR }} -B ${{ env.BUILD_DIR }}
cmake --build ${{ env.BUILD_DIR }} --config ${{ matrix.build-type }} --parallel --verbose
cmake --build ${{ env.BUILD_DIR }} --config ${{ matrix.build-type }} --parallel $(nproc) --verbose
cmake --install ${{ env.BUILD_DIR }} --config ${{ matrix.build-type }} --prefix ${{ env.INSTALL_DIR }}

- name: Upload Node.js bindings Build Package
Expand All @@ -429,14 +434,16 @@ jobs:
cmd: 'tests/python_tests/test_whisper_pipeline.py -k "not test_smoke[sample_from_dataset0 and not test_whisper_constructors[sample_from_dataset0 and not test_max_new_tokens[sample_from_dataset0 and not test_language_mode[language and not test_task_mode[sample_from_dataset0 and not test_language_autodetect[sample_from_dataset0 and not test_whisper_config_constructor and not test_language_autodetect[sample_from_dataset1 and not test_language_autodetect[sample_from_dataset2 and not test_initial_prompt_hotwords[sample_from_dataset0 and not test_random_sampling[sample_from_dataset0"'
run_condition: ${{ fromJSON(needs.smart_ci.outputs.affected_components).whisper.test }}
timeout: 120
- name: 'Cacheopt E2E'
cmd: 'tests/python_tests/test_kv_cache_eviction.py'
run_condition: ${{ fromJSON(needs.smart_ci.outputs.affected_components).continuous_batching.test }}
timeout: 240
- name: 'LLM & VLM'
cmd: 'tests/python_tests/test_llm_pipeline.py tests/python_tests/test_llm_pipeline_static.py tests/python_tests/test_vlm_pipeline.py tests/python_tests/test_structured_output.py'
run_condition: ${{ fromJSON(needs.smart_ci.outputs.affected_components).visual_language.test || fromJSON(needs.smart_ci.outputs.affected_components).LLM.test }}
timeout: 180
# Only supported on X64 or ARM with SVE support
# - name: 'Cacheopt E2E'
# cmd: 'tests/python_tests/test_kv_cache_eviction.py'
# run_condition: ${{ fromJSON(needs.smart_ci.outputs.affected_components).continuous_batching.test }}
# timeout: 240
# Only supported on X64 or ARM with SVE support
# - name: 'LLM & VLM'
# cmd: 'tests/python_tests/test_llm_pipeline.py tests/python_tests/test_llm_pipeline_static.py tests/python_tests/test_vlm_pipeline.py tests/python_tests/test_structured_output.py'
# run_condition: ${{ fromJSON(needs.smart_ci.outputs.affected_components).visual_language.test || fromJSON(needs.smart_ci.outputs.affected_components).LLM.test }}
# timeout: 180
- name: 'GGUF Reader tests'
cmd: 'tests/python_tests/test_gguf_reader.py'
run_condition: ${{ fromJSON(needs.smart_ci.outputs.affected_components).GGUF.test || fromJSON(needs.smart_ci.outputs.affected_components).LLM.test }}
Expand All @@ -445,18 +452,19 @@ jobs:
cmd: 'tests/python_tests/test_tokenizer.py'
run_condition: ${{ fromJSON(needs.smart_ci.outputs.affected_components).tokenizers.test }}
timeout: 60
- name: 'API tests'
cmd: 'tests/python_tests/test_continuous_batching.py tests/python_tests/test_generation_config.py tests/python_tests/test_sampling.py tests/python_tests/test_text_streamer.py'
run_condition: ${{ fromJSON(needs.smart_ci.outputs.affected_components).continuous_batching.test || fromJSON(needs.smart_ci.outputs.affected_components).sampling.test || fromJSON(needs.smart_ci.outputs.affected_components).text_streamer.test }}
timeout: 60
# Only supported on X64 or ARM with SVE support
# - name: 'API tests'
# cmd: 'tests/python_tests/test_continuous_batching.py tests/python_tests/test_generation_config.py tests/python_tests/test_sampling.py tests/python_tests/test_text_streamer.py'
# run_condition: ${{ fromJSON(needs.smart_ci.outputs.affected_components).continuous_batching.test || fromJSON(needs.smart_ci.outputs.affected_components).sampling.test || fromJSON(needs.smart_ci.outputs.affected_components).text_streamer.test }}
# timeout: 60
- name: 'Rag tests'
cmd: 'tests/python_tests/test_rag.py'
run_condition: ${{ fromJSON(needs.smart_ci.outputs.affected_components).RAG.test }}
timeout: 30
defaults:
run:
shell: bash
runs-on: macos-13
runs-on: macos-14
env:
INSTALL_DIR: ${{ github.workspace }}/install
SRC_DIR: ${{ github.workspace }}/src
Expand Down Expand Up @@ -535,7 +543,7 @@ jobs:
defaults:
run:
shell: bash
runs-on: macos-13
runs-on: macos-14
env:
INSTALL_DIR: ${{ github.workspace }}/ov
SRC_DIR: ${{ github.workspace }}/src
Expand Down Expand Up @@ -635,7 +643,7 @@ jobs:
defaults:
run:
shell: bash
runs-on: macos-13
runs-on: macos-14
env:
INSTALL_DIR: ${{ github.workspace }}/ov
SRC_DIR: ${{ github.workspace }}/src
Expand Down Expand Up @@ -692,7 +700,7 @@ jobs:
defaults:
run:
shell: bash
runs-on: macos-13
runs-on: macos-14

env:
SRC_DIR: ${{ github.workspace }}/openvino.genai
Expand Down
3 changes: 3 additions & 0 deletions tests/python_tests/test_gguf_reader.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@


import pytest
import platform
import torch
import gc
import sys
Expand Down Expand Up @@ -112,6 +113,8 @@ def test_full_gguf_pipeline(pipeline_type, model_ids, enable_save_ov_model):

@pytest.mark.parametrize("pipeline_type", get_gguf_pipeline_types())
@pytest.mark.parametrize("model_ids", [{"gguf_model_id": "Qwen/Qwen3-0.6B-GGUF", "gguf_filename": "Qwen3-0.6B-Q8_0.gguf"}])
@pytest.mark.xfail(condition=(sys.platform == "darwin" and platform.machine() in ('arm', 'armv7l',
'aarch64', 'arm64', 'ARM64')), reason="Ticket - 172335")
@pytest.mark.precommit
def test_full_gguf_qwen3_pipeline(pipeline_type, model_ids):
# Temporal testing solution until transformers starts to support qwen3 in GGUF format
Expand Down
Loading