Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
58 changes: 33 additions & 25 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 @@ -82,7 +82,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 @@ -97,7 +98,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 @@ -149,7 +150,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 @@ -162,7 +163,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 @@ -217,7 +218,7 @@ jobs:
defaults:
run:
shell: bash
runs-on: macos-13
runs-on: macos-14-xlarge
env:
CCACHE_DIR: ${{ github.workspace }}/ccache
CMAKE_CXX_COMPILER_LAUNCHER: ccache
Expand Down Expand Up @@ -266,7 +267,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 Down Expand Up @@ -318,7 +319,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 @@ -370,11 +371,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 @@ -406,7 +407,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 }}
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
cmake --build ${{ env.BUILD_DIR }} --config ${{ matrix.build-type }} --parallel $(nproc) --verbose
cmake --build ${{ env.BUILD_DIR }} --config ${{ matrix.build-type }} --parallel $(sysctl -n hw.ncpu) --verbose

Copilot uses AI. Check for mistakes.


- name: Upload Node.js bindings Build Package
Expand All @@ -426,14 +427,20 @@ jobs:
matrix:
test:
- name: 'Whisper'
# TODO: skip some tests temporary untill https://github.com/huggingface/datasets/issues/7647 dataset is fixed
# TODO: skip some tests temporary until https://github.com/huggingface/datasets/issues/7647 dataset is fixed
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: '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 -p no:cacheprovider'
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 @@ -442,10 +449,11 @@ 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 }}
Expand All @@ -457,7 +465,7 @@ jobs:
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 @@ -536,7 +544,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 @@ -636,7 +644,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 @@ -693,7 +701,7 @@ jobs:
defaults:
run:
shell: bash
runs-on: macos-13
runs-on: macos-14

env:
SRC_DIR: ${{ github.workspace }}/openvino.genai
Expand Down
2 changes: 1 addition & 1 deletion samples/export-requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ diffusers==0.34.0 # For image generation pipelines
timm==1.0.19 # For exporting InternVL2
# torchvision for visual language models
torchvision==0.17.2; platform_system == "Darwin" and platform_machine == "x86_64"
torchvision==0.23.0+cpu; platform_system != "Darwin" or platform_machine != "x86_64"
torchvision==0.23.0; platform_system != "Darwin" or platform_machine != "x86_64"
transformers==4.52.4 # For Whisper
hf_transfer==0.1.9 # for faster models download, should used with env var HF_HUB_ENABLE_HF_TRANSFER=1
backoff==2.2.1 # for microsoft/Phi-3.5-vision-instruct
Expand Down
2 changes: 1 addition & 1 deletion tests/python_tests/requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ langchain-core==0.3.74
einops==0.8.1
# - openbmb/MiniCPM-V-2
torchvision==0.17.2; platform_system == "Darwin" and platform_machine == "x86_64"
torchvision==0.23.0+cpu; platform_system != "Darwin" or platform_machine != "x86_64"
torchvision==0.23.0; platform_system != "Darwin" or platform_machine != "x86_64"
# - openbmb/MiniCPM-V-2
timm==1.0.19
# - openai/whisper-base
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