macOS (Python 3.11) #8
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: macOS (Python 3.11) | |
on: | |
workflow_dispatch: | |
schedule: | |
# at 00:00 on workdays | |
- cron: '0 0 * * 1,2,3,4,5' | |
# pull_request: | |
# paths-ignore: | |
# - '**/docs/**' | |
# - 'docs/**' | |
# - '**/**.md' | |
# - '**.md' | |
# - '**/layer_tests_summary/**' | |
# - '**/conformance/**' | |
# push: | |
# paths-ignore: | |
# - '**/docs/**' | |
# - 'docs/**' | |
# - '**/**.md' | |
# - '**.md' | |
# - '**/layer_tests_summary/**' | |
# - '**/conformance/**' | |
# branches: | |
# - master | |
# - 'releases/**' | |
concurrency: | |
# github.ref is not unique in post-commit | |
group: ${{ github.event_name == 'push' && github.run_id || github.ref }}-mac-main | |
cancel-in-progress: true | |
env: | |
PYTHON_VERSION: '3.11' | |
jobs: | |
Build: | |
timeout-minutes: 150 | |
defaults: | |
run: | |
shell: bash | |
strategy: | |
max-parallel: 2 | |
fail-fast: false | |
matrix: | |
include: | |
- arhitecture: 'x86_64' | |
machine: 'macos-13-large' | |
macos_deployment_target: '10.12' | |
- arhitecture: 'arm64' | |
machine: 'macos-13-xlarge' | |
macos_deployment_target: '11.0' | |
runs-on: ${{ matrix.machine }} | |
env: | |
CMAKE_BUILD_TYPE: 'Release' | |
CMAKE_GENERATOR: 'Ninja Multi-Config' | |
MACOSX_DEPLOYMENT_TARGET: ${{ matrix.macos_deployment_target }} | |
CMAKE_CXX_COMPILER_LAUNCHER: ccache | |
CMAKE_C_COMPILER_LAUNCHER: ccache | |
OPENVINO_REPO: ${{ github.workspace }}/openvino | |
OPENVINO_CONTRIB_REPO: ${{ github.workspace }}/openvino_contrib | |
INSTALL_DIR: ${{ github.workspace }}/openvino_install | |
INSTALL_TEST_DIR: ${{ github.workspace }}/tests_install | |
BUILD_DIR: ${{ github.workspace }}/build | |
steps: | |
- name: Clone OpenVINO | |
uses: actions/checkout@v4 | |
with: | |
path: 'openvino' | |
submodules: 'true' | |
- name: Clone OpenVINO Contrib | |
uses: actions/checkout@v4 | |
with: | |
repository: 'openvinotoolkit/openvino_contrib' | |
path: 'openvino_contrib' | |
# | |
# Dependencies | |
# | |
- name: Install build dependencies | |
run: brew install coreutils ninja scons | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ env.PYTHON_VERSION }} | |
- name: Install python dependencies | |
run: | | |
# For Python API | |
python3 -m pip install -r ${{ env.OPENVINO_REPO }}/src/bindings/python/wheel/requirements-dev.txt | |
python3 -m pip install -r ${{ env.OPENVINO_REPO }}/src/bindings/python/requirements.txt | |
# For running Python API tests | |
python3 -m pip install -r ${{ env.OPENVINO_REPO }}/src/bindings/python/src/compatibility/openvino/requirements-dev.txt | |
# For running ONNX frontend unit tests | |
python3 -m pip install --force-reinstall -r ${{ env.OPENVINO_REPO }}/src/frontends/onnx/tests/requirements.txt | |
# For running TensorFlow frontend unit tests | |
python3 -m pip install -r ${{ env.OPENVINO_REPO }}/src/frontends/tensorflow/tests/requirements.txt | |
# For running Paddle frontend unit tests | |
python3 -m pip install -r ${{ env.OPENVINO_REPO }}/src/frontends/paddle/tests/requirements.txt | |
# | |
# Build | |
# | |
- name: Setup ccache | |
uses: hendrikmuhs/[email protected] | |
with: | |
max-size: "2000M" | |
# Should save cache only if run in the master branch of the base repo | |
# github.ref_name is 'ref/PR_#' in case of the PR, and 'branch_name' when executed on push | |
save: ${{ github.ref_name == 'master' && 'true' || 'false' }} | |
verbose: 2 | |
key: ${{ runner.os }}-${{ matrix.arhitecture }}-main | |
restore-keys: | | |
${{ runner.os }}-${{ matrix.arhitecture }}-main | |
- name: CMake configure | |
run: | | |
cmake \ | |
-G "${{ env.CMAKE_GENERATOR }}" \ | |
-DENABLE_CPPLINT=OFF \ | |
-DENABLE_NCC_STYLE=OFF \ | |
-DENABLE_TESTS=ON \ | |
-DCMAKE_COMPILE_WARNING_AS_ERROR=OFF \ | |
-DENABLE_STRICT_DEPENDENCIES=OFF \ | |
-DCMAKE_CXX_COMPILER_LAUNCHER=${{ env.CMAKE_CXX_COMPILER_LAUNCHER }} \ | |
-DCMAKE_C_COMPILER_LAUNCHER=${{ env.CMAKE_C_COMPILER_LAUNCHER }} \ | |
-S ${{ env.OPENVINO_REPO }} \ | |
-B ${{ env.BUILD_DIR }} | |
- name: Cmake build - OpenVINO | |
run: cmake --build ${{ env.BUILD_DIR }} --parallel --config ${{ env.CMAKE_BUILD_TYPE }} | |
- name: Show ccache stats | |
run: ccache --show-stats | |
- name: Cmake install - OpenVINO | |
run: | | |
cmake -DCMAKE_INSTALL_PREFIX=${{ env.INSTALL_DIR }} -P ${{ env.BUILD_DIR }}/cmake_install.cmake | |
cmake -DCMAKE_INSTALL_PREFIX=${{ env.INSTALL_TEST_DIR }} -DCOMPONENT=tests -P ${{ env.BUILD_DIR }}/cmake_install.cmake | |
cmake -DCMAKE_INSTALL_PREFIX=${{ env.INSTALL_DIR }} -DCOMPONENT=python_wheels -P ${{ env.BUILD_DIR }}/cmake_install.cmake | |
- name: Pack Artifacts | |
run: | | |
pushd ${{ env.INSTALL_DIR }} | |
tar -czvf ${{ env.BUILD_DIR }}/openvino_package.tar.gz * | |
popd | |
pushd ${{ env.INSTALL_TEST_DIR }} | |
tar -czvf ${{ env.BUILD_DIR }}/openvino_tests.tar.gz * | |
popd | |
- name: Cmake & Build - OpenVINO Contrib | |
run: | | |
cmake \ | |
-DBUILD_nvidia_plugin=OFF \ | |
-DBUILD_java_api=OFF \ | |
-DCUSTOM_OPERATIONS="calculate_grid;complex_mul;fft;grid_sample;sparse_conv;sparse_conv_transpose" \ | |
-DOPENVINO_EXTRA_MODULES=${{ env.OPENVINO_CONTRIB_REPO }}/modules \ | |
-S ${{ env.OPENVINO_REPO }} \ | |
-B ${{ env.BUILD_DIR }} | |
cmake --build ${{ env.BUILD_DIR }} --parallel --config ${{ env.CMAKE_BUILD_TYPE }} | |
# | |
# Upload build artifacts | |
# | |
- name: Upload openvino package | |
if: ${{ always() }} | |
uses: actions/upload-artifact@v3 | |
with: | |
name: openvino_package_${{ matrix.arhitecture }} | |
path: ${{ env.BUILD_DIR }}/openvino_package.tar.gz | |
if-no-files-found: 'error' | |
- name: Upload openvino tests package | |
if: ${{ always() }} | |
uses: actions/upload-artifact@v3 | |
with: | |
name: openvino_tests_${{ matrix.arhitecture }} | |
path: ${{ env.BUILD_DIR }}/openvino_tests.tar.gz | |
if-no-files-found: 'error' | |
Samples: | |
needs: Build | |
timeout-minutes: 5 | |
defaults: | |
run: | |
shell: bash | |
strategy: | |
max-parallel: 2 | |
fail-fast: false | |
matrix: | |
include: | |
- arhitecture: 'x86_64' | |
machine: 'macos-13' | |
- arhitecture: 'arm64' | |
machine: 'macos-13-xlarge' | |
runs-on: ${{ matrix.machine }} | |
env: | |
INSTALL_DIR: ${{ github.workspace }}/install | |
INSTALL_TEST_DIR: ${{ github.workspace }}/install/tests | |
BUILD_DIR: ${{ github.workspace }}/build | |
steps: | |
# | |
# Initialize OpenVINO | |
# | |
- name: Download OpenVINO package | |
uses: actions/download-artifact@v3 | |
with: | |
name: openvino_package_${{ matrix.arhitecture }} | |
path: ${{ env.INSTALL_DIR }} | |
- name: Download OpenVINO tests package | |
uses: actions/download-artifact@v3 | |
with: | |
name: openvino_tests_${{ matrix.arhitecture }} | |
path: ${{ env.INSTALL_TEST_DIR }} | |
- name: Extract OpenVINO packages | |
run: | | |
pushd ${INSTALL_DIR} | |
tar -xzf openvino_package.tar.gz -C ${INSTALL_DIR} | |
popd | |
pushd ${INSTALL_TEST_DIR} | |
tar -xzf openvino_tests.tar.gz -C ${INSTALL_DIR} | |
popd | |
- name: Install dependencies | |
run: brew install coreutils | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ env.PYTHON_VERSION }} | |
- name: Build cpp samples | |
run: ${INSTALL_DIR}/samples/cpp/build_samples.sh -i ${INSTALL_DIR} -b ${BUILD_DIR}/cpp_samples | |
env: | |
CMAKE_COMPILE_WARNING_AS_ERROR: 'ON' | |
- name: Build c samples | |
run: ${INSTALL_DIR}/samples/c/build_samples.sh -i ${INSTALL_DIR} -b ${BUILD_DIR}/c_samples | |
env: | |
CMAKE_COMPILE_WARNING_AS_ERROR: 'ON' | |
# | |
# Tests | |
# | |
- name: Samples tests | |
run: | | |
export WORKSPACE=${INSTALL_DIR} | |
export IE_APP_PATH=${INSTALL_DIR}/samples_bin | |
export IE_APP_PYTHON_PATH=${INSTALL_DIR}/samples/python | |
export SHARE=${INSTALL_TEST_DIR}/smoke_tests/samples_smoke_tests_data | |
python3 -m pip install --ignore-installed PyYAML -r ${INSTALL_TEST_DIR}/smoke_tests/requirements.txt | |
source ${INSTALL_DIR}/setupvars.sh | |
python3 -m pytest -sv ${INSTALL_TEST_DIR}/smoke_tests \ | |
--env_conf ${INSTALL_TEST_DIR}/smoke_tests/env_config.yml \ | |
--junitxml=${INSTALL_TEST_DIR}/TEST-SamplesSmokeTests.xml | |
- name: Upload Test Results | |
uses: actions/upload-artifact@v3 | |
if: ${{ !cancelled() }} | |
with: | |
name: test-results-samples-${{ matrix.arhitecture }} | |
path: ${{ env.INSTALL_TEST_DIR }}/TEST*.xml | |
if-no-files-found: 'error' | |
CXX_Unit_Tests: | |
name: C++ Unit tests | |
needs: Build | |
timeout-minutes: 20 | |
defaults: | |
run: | |
shell: bash | |
strategy: | |
max-parallel: 2 | |
fail-fast: false | |
matrix: | |
include: | |
- arhitecture: 'x86_64' | |
machine: 'macos-13' | |
- arhitecture: 'arm64' | |
machine: 'macos-13-xlarge' | |
runs-on: ${{ matrix.machine }} | |
env: | |
INSTALL_DIR: ${{ github.workspace }}/install | |
INSTALL_TEST_DIR: ${{ github.workspace }}/install/tests | |
steps: | |
# | |
# Dependencies | |
# | |
- name: Download OpenVINO package | |
uses: actions/download-artifact@v3 | |
with: | |
name: openvino_package_${{ matrix.arhitecture }} | |
path: ${{ env.INSTALL_DIR }} | |
- name: Download OpenVINO tests package | |
uses: actions/download-artifact@v3 | |
with: | |
name: openvino_tests_${{ matrix.arhitecture }} | |
path: ${{ env.INSTALL_TEST_DIR }} | |
- name: Extract OpenVINO packages | |
run: | | |
pushd ${{ env.INSTALL_DIR }} | |
tar -xzf openvino_package.tar.gz -C ${{ env.INSTALL_DIR }} && rm openvino_package.tar.gz || exit 1 | |
popd | |
pushd ${{ env.INSTALL_TEST_DIR }} | |
tar -xzf openvino_tests.tar.gz -C ${{ env.INSTALL_DIR }} && rm openvino_tests.tar.gz || exit 1 | |
popd | |
# | |
# Tests | |
# | |
- name: OpenVINO Core Unit Tests | |
run: | | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
${{ env.INSTALL_TEST_DIR }}/ov_core_unit_tests --gtest_print_time=1 --gtest_filter=-*IE_GPU* \ | |
--gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-NGraphUT.xml | |
- name: OpenVINO Inference Functional Tests | |
run: | | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
${{ env.INSTALL_TEST_DIR }}/ov_inference_functional_tests --gtest_print_time=1 \ | |
--gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-InferenceFunc.xml | |
- name: OpenVINO Inference Unit Tests | |
run: | | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
${{ env.INSTALL_TEST_DIR }}/ov_inference_unit_tests --gtest_print_time=1 \ | |
--gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-InferenceUnit.xml | |
- name: Low Precision Transformations Tests | |
run: | | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
# Skips under Ticket: 122660 | |
skip_filter=${{ matrix.arhitecture == 'arm64' && '--gtest_filter=-*smoke_LPT/FoldFakeQuantizeInTransformations.CompareFunctions*' || '' }} | |
${{ env.INSTALL_TEST_DIR }}/ov_lp_transformations_tests --gtest_print_time=1 "$skip_filter" \ | |
--gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-LpTransformations.xml | |
- name: OpenVINO Conditional compilation tests | |
run: | | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
${{ env.INSTALL_TEST_DIR }}/ov_conditional_compilation_tests --gtest_print_time=1 \ | |
--gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-ConditionalCompilation.xml | |
- name: IR frontend tests | |
run: | | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
${{ env.INSTALL_TEST_DIR }}/ov_ir_frontend_tests --gtest_print_time=1 \ | |
--gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-IRFrontend.xml | |
- name: PaddlePaddle frontend tests | |
if: ${{ 'false' }} | |
run: | | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
${{ env.INSTALL_TEST_DIR }}/paddle_tests --gtest_print_time=1 --gtest_filter=*smoke* \ | |
--gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-PaddleTests.xml | |
- name: ONNX frontend tests | |
if: ${{ matrix.arhitecture == 'x86_64' }} # Ticket for ARM64: 122663 | |
run: | | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
${{ env.INSTALL_TEST_DIR }}/ov_onnx_frontend_tests --gtest_print_time=1 --gtest_filter=-*IE_GPU* \ | |
--gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-ONNXFrontend.xml | |
- name: TensorFlow Common tests | |
run: | | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
${{ env.INSTALL_TEST_DIR }}/ov_tensorflow_common_tests --gtest_print_time=1 \ | |
--gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-TensorFlowCommonFrontend.xml | |
- name: TensorFlow frontend tests | |
run: | | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
# Skips under Ticket: 122666 | |
skip_filter=${{ matrix.arhitecture == 'arm64' && '--gtest_filter=-*CompileModelsTests.ModelWithSplitConvConcat*:*NgramCompilation*' || '' }} | |
${{ env.INSTALL_TEST_DIR }}/ov_tensorflow_frontend_tests --gtest_print_time=1 "$skip_filter" \ | |
--gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-TensorFlowFrontend.xml | |
- name: TensorFlow Lite frontend tests | |
run: | | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
${{ env.INSTALL_TEST_DIR }}/ov_tensorflow_lite_frontend_tests --gtest_print_time=1 \ | |
--gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-TensorFlowLiteFrontend.xml | |
- name: Transformations func tests | |
run: | | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
# Skips under Ticket: 122668 | |
skip_filter=${{ matrix.arhitecture == 'arm64' && '--gtest_filter=-*TransformationTestsF.CompressQuantizeWeights*:*TransformationTests/CompressQuantizeWeightsTests.FusionTest*' || '' }} | |
${{ env.INSTALL_TEST_DIR }}/ov_transformations_tests --gtest_print_time=1 "$skip_filter" \ | |
--gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-Transformations.xml | |
- name: Common test utils tests | |
run: | | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
${{ env.INSTALL_TEST_DIR }}/ov_util_tests --gtest_print_time=1 \ | |
--gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-commonUtilsTests.xml | |
- name: Snippets func tests | |
run: | | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
${{ env.INSTALL_TEST_DIR }}/ov_snippets_func_tests --gtest_print_time=1 \ | |
--gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-SnippetsFuncTests.xml | |
- name: CPU plugin unit tests | |
run: | | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
${{ env.INSTALL_TEST_DIR }}/ov_cpu_unit_tests --gtest_print_time=1 \ | |
--gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-CPUUnitTests.xml | |
- name: SubgraphsDumper tests | |
run: | | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
${{ env.INSTALL_TEST_DIR }}/subgraphsDumperTests --gtest_print_time=1 \ | |
--gtest_output=xml:${INSTALL_TEST_DIR}/TEST-SubgraphsDumperTests.xml | |
- name: Template OpImpl tests | |
run: | | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
${{ env.INSTALL_TEST_DIR }}/conformanceTests --gtest_print_time=1 --device=TEMPLATE --gtest_filter="*OpImpl*" \ | |
--gtest_output=xml:${INSTALL_TEST_DIR}/TEST-TemplateOpImplTests.xml | |
- name: AUTO unit tests | |
run: | | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
${{ env.INSTALL_TEST_DIR }}/ov_auto_unit_tests --gtest_print_time=1 \ | |
--gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-ov_auto_unit_tests.xml | |
- name: AUTO func Tests | |
run: | | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
${{ env.INSTALL_TEST_DIR }}/ov_auto_func_tests --gtest_print_time=1 \ | |
--gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-ov_auto_func_tests.xml | |
- name: Template plugin func tests | |
run: | | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
${{ env.INSTALL_TEST_DIR }}/ov_template_func_tests --gtest_print_time=1 \ | |
--gtest_filter=*smoke* \ | |
--gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-TemplateFuncTests.xml | |
- name: Inference Engine C API tests | |
run: | | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
${{ env.INSTALL_TEST_DIR }}/InferenceEngineCAPITests --gtest_print_time=1 \ | |
--gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-InferenceEngineCAPITests.xml | |
- name: OpenVINO C API tests | |
run: | | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
${{ env.INSTALL_TEST_DIR }}/ov_capi_test --gtest_print_time=1 \ | |
--gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-OpenVINOCAPITests.xml | |
- name: AutoBatch unit tests | |
run: | | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
${{ env.INSTALL_TEST_DIR }}/ov_auto_batch_unit_tests --gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-ov_auto_batch_unit_tests.xml | |
- name: AutoBatch func tests | |
run: | | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
${{ env.INSTALL_TEST_DIR }}/ov_auto_batch_func_tests --gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-ov_auto_batch_func_tests.xml | |
- name: Proxy Plugin func tests | |
run: | | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
${{ env.INSTALL_TEST_DIR }}/ov_proxy_plugin_tests --gtest_print_time=1 --gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-OVProxyTests.xml | |
- name: Hetero unit tests | |
run: | | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
${{ env.INSTALL_TEST_DIR }}/ov_hetero_unit_tests --gtest_print_time=1 --gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-OVHeteroUnitTests.xml | |
- name: Hetero func tests | |
run: | | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
${{ env.INSTALL_TEST_DIR }}/ov_hetero_func_tests --gtest_print_time=1 --gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-OVHeteroFuncTests.xml | |
- name: Upload Test Results | |
uses: actions/upload-artifact@v3 | |
if: ${{ always() }} | |
with: | |
name: test-results-cpp-${{ matrix.arhitecture }} | |
path: ${{ env.INSTALL_TEST_DIR }}/TEST*.xml | |
if-no-files-found: 'error' | |
Python_Unit_Tests: | |
name: Python unit tests | |
needs: Build | |
timeout-minutes: 55 | |
defaults: | |
run: | |
shell: bash | |
strategy: | |
max-parallel: 2 | |
fail-fast: false | |
matrix: | |
include: | |
- arhitecture: 'x86_64' | |
machine: 'macos-13' | |
- arhitecture: 'arm64' | |
machine: 'macos-13-xlarge' | |
runs-on: ${{ matrix.machine }} | |
env: | |
OPENVINO_REPO: ${{ github.workspace }}/openvino | |
OPENVINO_CONTRIB_REPO: ${{ github.workspace }}/openvino_contrib | |
INSTALL_DIR: ${{ github.workspace }}/install | |
INSTALL_TEST_DIR: ${{ github.workspace }}/install/tests | |
LAYER_TESTS_INSTALL_DIR: ${{ github.workspace }}/install/tests/layer_tests | |
steps: | |
- name: Clone OpenVINO | |
uses: actions/checkout@v4 | |
with: | |
path: 'openvino' | |
submodules: 'true' | |
# | |
# Dependencies | |
# | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ env.PYTHON_VERSION }} | |
- name: Download OpenVINO package | |
uses: actions/download-artifact@v3 | |
with: | |
name: openvino_package_${{ matrix.arhitecture }} | |
path: ${{ env.INSTALL_DIR }} | |
- name: Download OpenVINO tests package | |
uses: actions/download-artifact@v3 | |
with: | |
name: openvino_tests_${{ matrix.arhitecture }} | |
path: ${{ env.INSTALL_TEST_DIR }} | |
- name: Extract OpenVINO packages | |
run: | | |
pushd ${{ env.INSTALL_DIR }} | |
tar -xzf openvino_package.tar.gz -C ${{ env.INSTALL_DIR }} | |
popd | |
pushd ${{ env.INSTALL_TEST_DIR }} | |
tar -xzf openvino_tests.tar.gz -C ${{ env.INSTALL_DIR }} | |
popd | |
- name: Install Python API tests dependencies | |
run: | | |
# For torchvision to OpenVINO preprocessing converter | |
python3 -m pip install -r ${{ env.OPENVINO_REPO }}/src/bindings/python/src/openvino/preprocess/torchvision/requirements.txt | |
# TODO: replace with Python API tests requirements | |
python3 -m pip install -r ${{ env.OPENVINO_REPO }}/tools/mo/requirements_dev.txt | |
- name: Install OpenVINO Python wheels | |
run: | | |
# Install the core OV wheel | |
python3 -m pip install ${{ env.INSTALL_DIR }}/tools/openvino-*.whl | |
# mxnet is only available on x86_64 | |
extras_to_install="caffe,kaldi,onnx,tensorflow2,pytorch" | |
if [[ "${{ matrix.arhitecture }}" == "x86_64" ]]; then | |
extras_to_install="mxnet,$extras_to_install" | |
fi | |
# Find and install OV dev wheel | |
pushd ${{ env.INSTALL_DIR }}/tools | |
ov_dev_wheel_name=$(find . -name 'openvino_dev*.whl') | |
python3 -m pip install $ov_dev_wheel_name[$extras_to_install] | |
popd | |
- name: Python API 1.0 Tests | |
run: | | |
python3 -m pytest -s ${{ env.INSTALL_TEST_DIR }}/pyngraph \ | |
--junitxml=${{ env.INSTALL_TEST_DIR }}/TEST-Pyngraph.xml \ | |
--ignore=${{ env.INSTALL_TEST_DIR }}/pyngraph/tests_compatibility/test_onnx/test_zoo_models.py \ | |
--ignore=${{ env.INSTALL_TEST_DIR }}/pyngraph/tests_compatibility/test_onnx/test_backend.py | |
- name: Python API 2.0 Tests | |
run: | | |
# For python imports to import pybind_mock_frontend | |
export PYTHONPATH=${{ env.INSTALL_TEST_DIR }}:$PYTHONPATH | |
# for 'template' extension | |
export DYLD_LIBRARY_PATH=${{ env.INSTALL_TEST_DIR }}:$DYLD_LIBRARY_PATH | |
python3 -m pytest -sv ${{ env.INSTALL_TEST_DIR }}/pyopenvino \ | |
--junitxml=${{ env.INSTALL_TEST_DIR }}/TEST-Pyngraph.xml \ | |
--ignore=${{ env.INSTALL_TEST_DIR }}/pyopenvino/tests/test_utils/test_utils.py | |
- name: MO Python API Tests | |
run: | | |
python3 -m pip install -r ${{ env.LAYER_TESTS_INSTALL_DIR }}/requirements.txt | |
export PYTHONPATH=${{ env.LAYER_TESTS_INSTALL_DIR }}:$PYTHONPATH | |
# TODO: remove setupvars.sh from here; currently, it's used for 'test_utils' installed in '<package>/python/openvino' | |
source ${INSTALL_DIR}/setupvars.sh | |
python3 -m pytest ${{ env.LAYER_TESTS_INSTALL_DIR }}/mo_python_api_tests/ --junitxml=${{ env.INSTALL_TEST_DIR }}/TEST-test_mo_convert.xml | |
env: | |
TEST_DEVICE: CPU | |
TEST_PRECISION: FP16 | |
- name: OVC Python API Tests | |
run: | | |
python3 -m pip install -r ${{ env.LAYER_TESTS_INSTALL_DIR }}/requirements.txt | |
# TODO: remove setupvars.sh from here; currently, it's used for 'test_utils' installed in '<package>/python/openvino' | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
python3 -m pytest ${{ env.LAYER_TESTS_INSTALL_DIR }}/ovc_python_api_tests --junitxml=${{ env.INSTALL_TEST_DIR }}/TEST-test_ovc_convert.xml | |
env: | |
TEST_DEVICE: CPU | |
TEST_PRECISION: FP16 | |
- name: Model Optimizer unit tests | |
run: | | |
export PYTHONPATH=${{ env.INSTALL_TEST_DIR }}:$PYTHONPATH | |
python3 -m pytest -s ${{ env.INSTALL_TEST_DIR }}/mo/unit_tests \ | |
--ignore=${{ env.INSTALL_TEST_DIR }}/mo/unit_tests/mo/front/mxnet \ | |
--junitxml=${{ env.INSTALL_TEST_DIR }}/TEST-ModelOptimizer.xml | |
- name: PyTorch Layer Tests | |
run: | | |
python3 -m pip install -r ${{ env.LAYER_TESTS_INSTALL_DIR }}/requirements.txt | |
export PYTHONPATH=${{ env.LAYER_TESTS_INSTALL_DIR }}:$PYTHONPATH | |
python3 -m pytest ${{ env.LAYER_TESTS_INSTALL_DIR }}/pytorch_tests -m precommit --junitxml=${{ env.INSTALL_TEST_DIR }}/TEST-pytorch.xml | |
env: | |
TEST_DEVICE: CPU | |
TEST_PRECISION: FP16 | |
- name: ONNX Layer Tests | |
run: | | |
python3 -m pip install -r ${{ env.LAYER_TESTS_INSTALL_DIR }}/requirements.txt | |
export PYTHONPATH=${{ env.OPENVINO_REPO }}/tools/mo/:${{ env.LAYER_TESTS_INSTALL_DIR }}:$PYTHONPATH | |
python3 -m pytest ${{ env.LAYER_TESTS_INSTALL_DIR }}/onnx_tests -m "not launch_only_if_manually_specified and precommit" --junitxml=${{ env.INSTALL_TEST_DIR }}/TEST-onnx.xml | |
env: | |
TEST_DEVICE: CPU | |
TEST_PRECISION: FP16 | |
- name: TensorFlow 1 Layer Tests - TF FE | |
run: | | |
python3 -m pip install -r ${{ env.LAYER_TESTS_INSTALL_DIR }}/requirements.txt | |
export PYTHONPATH=${{ env.OPENVINO_REPO }}/tools/mo/:${{ env.LAYER_TESTS_INSTALL_DIR }}:$PYTHONPATH | |
python3 -m pytest ${{ env.LAYER_TESTS_INSTALL_DIR }}/tensorflow_tests/ --use_new_frontend -m precommit_tf_fe --junitxml=${{ env.INSTALL_TEST_DIR }}/TEST-tf_fe.xml | |
env: | |
TEST_DEVICE: CPU | |
- name: TensorFlow 2 Layer Tests - TF FE | |
if: ${{ 'false' }} # Ticket: 123322 | |
run: | | |
python3 -m pip install -r ${{ env.LAYER_TESTS_INSTALL_DIR }}/requirements.txt | |
export PYTHONPATH=${{ env.OPENVINO_REPO }}/tools/mo/:${{ env.LAYER_TESTS_INSTALL_DIR }}:$PYTHONPATH | |
python3 -m pytest ${{ env.LAYER_TESTS_INSTALL_DIR }}/tensorflow2_keras_tests/ --use_new_frontend -m precommit_tf_fe --junitxml=${{ env.INSTALL_TEST_DIR }}/TEST-tf2_fe.xml | |
env: | |
TEST_DEVICE: CPU | |
- name: TensorFlow 1 Layer Tests - Legacy FE | |
run: | | |
python3 -m pip install -r ${{ env.LAYER_TESTS_INSTALL_DIR }}/requirements.txt | |
export PYTHONPATH=${{ env.OPENVINO_REPO }}/tools/mo/:${{ env.LAYER_TESTS_INSTALL_DIR }}:$PYTHONPATH | |
python3 -m pytest ${{ env.LAYER_TESTS_INSTALL_DIR }}/tensorflow_tests/test_tf_Roll.py --ir_version=10 --junitxml=${{ env.INSTALL_TEST_DIR }}/TEST-tf_Roll.xml | |
- name: TensorFlow 2 Layer Tests - Legacy FE | |
run: | | |
python3 -m pip install -r ${{ env.LAYER_TESTS_INSTALL_DIR }}/requirements.txt | |
export PYTHONPATH=${{ env.OPENVINO_REPO }}/tools/mo/:${{ env.LAYER_TESTS_INSTALL_DIR }}:$PYTHONPATH | |
python3 -m pytest ${{ env.LAYER_TESTS_INSTALL_DIR }}/tensorflow2_keras_tests/test_tf2_keras_activation.py \ | |
--ir_version=11 --junitxml=${{ env.INSTALL_TEST_DIR }}/TEST-tf2_Activation.xml -k "sigmoid" | |
env: | |
TEST_DEVICE: CPU | |
TEST_PRECISION: FP16 | |
- name: TensorFlow Lite Layer Tests - TFL FE | |
run: | | |
python3 -m pip install -r ${{ env.LAYER_TESTS_INSTALL_DIR }}/requirements.txt | |
export PYTHONPATH=${{ env.OPENVINO_REPO }}/tools/mo/:${{ env.LAYER_TESTS_INSTALL_DIR }}:$PYTHONPATH | |
python3 -m pytest ${{ env.LAYER_TESTS_INSTALL_DIR }}/tensorflow_lite_tests/ --junitxml=${{ env.INSTALL_TEST_DIR }}/TEST-tfl_fe.xml | |
env: | |
TEST_DEVICE: CPU | |
TEST_PRECISION: FP16 | |
- name: Python ONNX operators tests | |
if: ${{ 'false' }} # Ticket: 123325 | |
run: | | |
# Skip test_onnx/test_zoo_models and test_onnx/test_backend due to long execution time - ONNX Model Zoo tests are run separately | |
python3 -m pytest -sv ${{ env.OPENVINO_REPO }}/src/frontends/onnx/tests -k 'not cuda' \ | |
--junitxml=${{ env.INSTALL_TEST_DIR }}/TEST-onnx_frontend.xml \ | |
--ignore=${{ env.OPENVINO_REPO }}/src/frontends/onnx/tests/test_python/test_zoo_models.py | |
- name: Python Frontend tests | |
run: | | |
python3 -m pip install -r ${{ env.LAYER_TESTS_INSTALL_DIR }}/requirements.txt | |
export PYTHONPATH=${{ env.OPENVINO_REPO }}/tools/mo/:${{ env.LAYER_TESTS_INSTALL_DIR }}:$PYTHONPATH | |
# to allow 'libtest_builtin_extensions.so' to find 'libopenvino_onnx_frontend.so' | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
python3 -m pytest ${{ env.LAYER_TESTS_INSTALL_DIR }}/py_frontend_tests --junitxml=${{ env.INSTALL_TEST_DIR }}/TEST-test_py_fontend.xml | |
# TODO: install to 'tests' component via cpack | |
- name: OVC unit tests | |
run: python3 -m pytest -s ${{ env.OPENVINO_REPO }}/tools/ovc/unit_tests --junitxml=${{ env.INSTALL_TEST_DIR }}/TEST-OpenVinoConversion.xml | |
- name: Upload Test Results | |
uses: actions/upload-artifact@v3 | |
if: ${{ always() }} | |
with: | |
name: test-results-python-${{ matrix.arhitecture }} | |
path: ${{ env.INSTALL_TEST_DIR }}/TEST*.xml | |
if-no-files-found: 'error' | |
CPU_Functional_Tests: | |
name: CPU functional tests | |
needs: Build | |
timeout-minutes: 25 | |
defaults: | |
run: | |
shell: bash | |
strategy: | |
max-parallel: 2 | |
fail-fast: false | |
matrix: | |
include: | |
# ticket: 122001 | |
# - arhitecture: 'x86_64' | |
# machine: 'macos-13' | |
- arhitecture: 'arm64' | |
machine: 'macos-13-xlarge' | |
runs-on: ${{ matrix.machine }} | |
env: | |
INSTALL_DIR: ${{ github.workspace }}/install | |
INSTALL_TEST_DIR: ${{ github.workspace }}/install/tests | |
steps: | |
- name: Create Directories | |
run: mkdir -p ${{ env.INSTALL_DIR }} ${{ env.INSTALL_TEST_DIR }} | |
- name: Download OpenVINO package | |
uses: actions/download-artifact@v3 | |
with: | |
name: openvino_package_${{ matrix.arhitecture }} | |
path: ${{ env.INSTALL_DIR }} | |
- name: Download OpenVINO tests package | |
uses: actions/download-artifact@v3 | |
with: | |
name: openvino_tests_${{ matrix.arhitecture }} | |
path: ${{ env.INSTALL_TEST_DIR }} | |
- name: Extract OpenVINO packages | |
run: | | |
pushd ${{ env.INSTALL_DIR }} | |
tar -xzf openvino_package.tar.gz -C ${{ env.INSTALL_DIR }} && rm openvino_package.tar.gz | |
popd | |
pushd ${{ env.INSTALL_TEST_DIR }} | |
tar -xzf openvino_tests.tar.gz -C ${{ env.INSTALL_DIR }} && rm openvino_tests.tar.gz | |
popd | |
- name: CPU plugin func tests | |
run: | | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
# Skips under Ticket: 122769 | |
skip_filter=${{ matrix.arhitecture == 'arm64' && '--gtest_filter=-*smoke_nonzero/NonZeroLayerTest.Inference/IS*:*smoke_NormalizeL2_*:*Extension.XmlModelWithExtensionFromDSO*:*Extension.OnnxModelWithExtensionFromDSO*:*ONNXQuantizedModels/QuantizedModelsTests.MaxPool*:*ONNXQuantizedModels/QuantizedModelsTests.Convolution*:**' || '' }} | |
${{ env.INSTALL_TEST_DIR }}/ov_cpu_func_tests --gtest_print_time=1 --gtest_filter=*smoke* "$skip_filter" --gtest_output=xml:"${{ env.INSTALL_TEST_DIR }}/TEST-CPUFuncTests.xml" | |
- name: Upload Test Results | |
uses: actions/upload-artifact@v3 | |
if: ${{ always() }} | |
with: | |
name: test-results-functional-cpu-${{ matrix.arhitecture }} | |
path: ${{ env.INSTALL_TEST_DIR }}/TEST*.xml | |
if-no-files-found: 'error' |