From fca34c6f9fcc1640d1d5a96e7f07e398960251b8 Mon Sep 17 00:00:00 2001 From: Andrey Kashchikhin Date: Tue, 10 Oct 2023 10:35:35 +0100 Subject: [PATCH] [CI] [GHA] Refactor Win pipeline: split the `Build` job, remove unnecessary requirements installation (#20320) * split build job; rm unnecessary requirements installation * add missing OV Contrib build * align requirements install * rm incorrectly place vsvars, apply comments: add missing tests * rm build and source options in the cmake OV Contrib command * add missing build directory * add logs * Update windows.yml Fixed rebuild from scratch with OpenVINO Contrib * verbose archive extraction * Fixed path for extraction of openvino_tests package * Use windows-latest-8-cores for samples * Update windows.yml * Update .github/workflows/windows.yml * use filename for wheel; build ov contrib with ov --------- Co-authored-by: Ilya Lavrenov --- .github/workflows/windows.yml | 433 ++++++++++++++++------------------ 1 file changed, 205 insertions(+), 228 deletions(-) diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 2dd4b218a1e..1e39f82e7b8 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -1,4 +1,4 @@ -name: Tests on Windows (VS 2022, Python 3.11) +name: Windows (VS 2022, Python 3.11) on: workflow_dispatch: pull_request: @@ -26,20 +26,7 @@ concurrency: cancel-in-progress: true env: - CMAKE_BUILD_TYPE: 'Release' - CMAKE_GENERATOR: 'Ninja' - CMAKE_CXX_COMPILER_LAUNCHER: sccache - CMAKE_C_COMPILER_LAUNCHER: sccache - OPENVINO_REPO: "${{ github.workspace }}\\openvino" - OPENVINO_CONTRIB_REPO: "${{ github.workspace }}\\openvino_contrib" - INSTALL_DIR: "${{ github.workspace }}\\install" - INSTALL_TEST_DIR: "${{ github.workspace }}\\install\\tests" - SAMPLES_INSTALL_DIR: "${{ github.workspace }}\\install\\samples" - LAYER_TESTS_INSTALL_DIR: "${{ github.workspace }}\\install\\tests\\layer_tests" - BUILD_DIR: "${{ github.workspace }}\\build" - OV_TEMP: "${{ github.workspace }}\\openvino_temp" - PYTHON_STATIC_ARGS: -m "not dynamic_library" - VCVARSPATH: "C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise\\VC\\Auxiliary\\Build\\vcvarsall.bat" + PYTHON_VERSION: '3.11' jobs: Build: @@ -47,6 +34,16 @@ jobs: run: shell: pwsh runs-on: windows-latest-8-cores + env: + CMAKE_BUILD_TYPE: 'Release' + CMAKE_GENERATOR: 'Ninja Multi-Config' + CMAKE_CXX_COMPILER_LAUNCHER: sccache + CMAKE_C_COMPILER_LAUNCHER: sccache + 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 }}\\openvino_build" steps: - name: Clone OpenVINO uses: actions/checkout@v4 @@ -66,56 +63,35 @@ jobs: - uses: actions/setup-python@v4 with: - python-version: '3.11' + python-version: ${{ env.PYTHON_VERSION }} - name: Install python dependencies run: | - # For Python API - python3 -m pip install Scons + # For Python API: build and wheel packaging 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 - python3 -m pip install -r ${{ env.OPENVINO_REPO }}/src/bindings/python/requirements_test.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 -r ${{ env.OPENVINO_REPO }}/src/frontends/onnx/tests/requirements.txt + 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 + # For running TensorFlow Lite frontend unit tests + python3 -m pip install -r ${{ env.OPENVINO_REPO }}/src/frontends/tensorflow_lite/tests/requirements.txt - - name: Install MO dependencies - run: | - python3 -m pip install -r ${{ env.OPENVINO_REPO }}/tools/mo/requirements_mxnet.txt ` - -r ${{ env.OPENVINO_REPO }}/tools/mo/requirements_caffe.txt ` - -r ${{ env.OPENVINO_REPO }}/tools/mo/requirements_kaldi.txt ` - -r ${{ env.OPENVINO_REPO }}/tools/mo/requirements_onnx.txt ` - -r ${{ env.OPENVINO_REPO }}/tools/mo/requirements_tf2.txt ` - -r ${{ env.OPENVINO_REPO }}/tools/mo/requirements_dev.txt + # For running Paddle frontend unit tests + # python3 -m pip install -r ${{ env.OPENVINO_REPO }}/src/frontends/paddle/tests/requirements.txt - name: Install build dependencies - run: | - choco install --no-progress ninja - choco install --no-progress shellcheck - - - name: Get tools versions - run: | - python3 --version - cmake --version + run: choco install --no-progress ninja # # Build # - - name: Get number of CPU cores - uses: SimenB/github-actions-cpu-cores@v2 - id: cpu-cores - - - uses: ilammy/msvc-dev-cmd@v1 + - name: Configure Developer Command Prompt for Microsoft Visual C++ + uses: ilammy/msvc-dev-cmd@v1 - name: Setup sccache uses: hendrikmuhs/ccache-action@v1.2 @@ -132,55 +108,33 @@ jobs: - name: CMake configure run: | - & {{ env.VCVARSPATH }} x64 && cmake -G "Ninja Multi-Config" ` + cmake -G "${{ env.CMAKE_GENERATOR }}" ` -DENABLE_CPPLINT=OFF ` - -DENABLE_ONEDNN_FOR_GPU=OFF ` + -DCMAKE_CXX_STANDARD=14 ` + -DBUILD_nvidia_plugin=OFF ` -DBUILD_SHARED_LIBS=OFF ` -DENABLE_TESTS=ON ` -DCMAKE_COMPILE_WARNING_AS_ERROR=OFF ` -DENABLE_STRICT_DEPENDENCIES=OFF ` -DENABLE_PYTHON=ON ` - -DBUILD_nvidia_plugin=OFF ` -DCMAKE_DISABLE_FIND_PACKAGE_PkgConfig=ON ` -DCUSTOM_OPERATIONS="calculate_grid;complex_mul;fft;grid_sample;sparse_conv;sparse_conv_transpose" ` - -DOPENVINO_EXTRA_MODULES=${{ env.OPENVINO_CONTRIB_REPO }}\modules ` - -DCMAKE_BUILD_TYPE=Release ` + -DOPENVINO_EXTRA_MODULES=${{ env.OPENVINO_CONTRIB_REPO }}/modules ` -S ${{ env.OPENVINO_REPO }} ` -B ${{ env.BUILD_DIR }} - - name: Build + - name: Cmake build - OpenVINO + run: cmake --build ${{ env.BUILD_DIR }} --parallel --config ${{ env.CMAKE_BUILD_TYPE }} --verbose + + - name: Cmake install - OpenVINO run: | - & {{ env.VCVARSPATH }} x64 && cmake --build ${{ env.BUILD_DIR }} --parallel ${{ steps.cpu-cores.outputs.count }} --config Release - - - name: Install - run: cmake -DCMAKE_INSTALL_PREFIX=${{ env.INSTALL_DIR }} -P ${{ env.BUILD_DIR }}/cmake_install.cmake - - - name: Install Wheels - run: python3 -m pip install openvino-dev --find-links=${{ env.INSTALL_DIR }}\tools - - - name: CMake Samples Tests - run: | - & {{ env.VCVARSPATH }} x64 && cmake -S ${{ env.OPENVINO_REPO }}/tests/samples_tests -B ${{ env.BUILD_DIR }}/samples_tests - - - name: Install Samples Tests - run: cmake -DCOMPONENT=tests -DCMAKE_INSTALL_PREFIX=${{ env.INSTALL_DIR }} -P ${{ env.BUILD_DIR }}/samples_tests/cmake_install.cmake - - - name: Install Tests - run: cmake -DCMAKE_INSTALL_PREFIX=${{ env.INSTALL_DIR }} -DCOMPONENT=tests -P ${{ env.BUILD_DIR }}\cmake_install.cmake - - - name: Cmake Layer Tests - run: | - & {{ env.VCVARSPATH }} x64 && cmake -S ${{ env.OPENVINO_REPO }}/tests/layer_tests -B ${{ env.BUILD_DIR }}/layer_tests - - - name: Build Layer Tests - run: cmake --build ${{ env.BUILD_DIR }}/layer_tests --parallel --config Release - - - name: Install Layer Tests - run: cmake -DCOMPONENT=tests -DCMAKE_INSTALL_PREFIX=${{ env.INSTALL_DIR }} -P ${{ env.BUILD_DIR }}/layer_tests/cmake_install.cmake + 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: | - $file=Get-ChildItem -Path "${{ env.INSTALL_DIR }}" -Exclude "tests" + $file=Get-ChildItem -Path "${{ env.INSTALL_DIR }}" $compress = @{ Path = $file CompressionLevel = "Optimal" @@ -188,7 +142,7 @@ jobs: } Compress-Archive @compress - $file=Get-ChildItem -Path "${{ env.INSTALL_DIR }}\tests" + $file=Get-ChildItem -Path "${{ env.INSTALL_TEST_DIR }}" $compress = @{ Path = $file CompressionLevel = "Optimal" @@ -196,36 +150,16 @@ jobs: } Compress-Archive @compress - - name: Build cpp samples + - name: Cmake & Build - OpenVINO Contrib + if: ${{ 'false' }} # Ticket: 122441 run: | - & {{ env.VCVARSPATH }} x64 - & ${{ env.SAMPLES_INSTALL_DIR }}/cpp/build_samples_msvc.bat -i ${{ env.INSTALL_DIR }} - - - name: Build c samples - run: | - & {{ env.VCVARSPATH }} x64 - & ${{ env.SAMPLES_INSTALL_DIR }}/c/build_samples_msvc.bat -i ${{ env.INSTALL_DIR }} - - - name: Samples tests - shell: cmd - run: | - python3 -m pip install --ignore-installed PyYAML -r ${{ env.INSTALL_TEST_DIR }}/smoke_tests/requirements.txt - call "${{ env.INSTALL_DIR }}\\setupvars.bat" && python3 -m pytest -sv ${{ env.INSTALL_TEST_DIR }}/smoke_tests --env_conf ${{ env.INSTALL_TEST_DIR }}/smoke_tests/env_config.yml --junitxml=${{ env.INSTALL_TEST_DIR }}/TEST-SamplesSmokeTests.xml - env: - IE_APP_PATH: ${{ env.INSTALL_DIR }}/samples_bin - IE_APP_PYTHON_PATH: ${{ env.INSTALL_DIR }}/samples/python - SHARE: ${{ env.INSTALL_TEST_DIR }}/smoke_tests/samples_smoke_tests_data - WORKSPACE: ${{ env.INSTALL_DIR }} - - # Present in the "Build" job due to the fact that these tests require build directory - - name: ONNX frontend tests - shell: cmd - run: | - call "${{ env.INSTALL_DIR }}\\setupvars.bat" && ${{ 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: List installed files - run: | - Get-ChildItem -Recurse -Directory ${{ env.INSTALL_DIR }} + cmake ` + -DBUILD_nvidia_plugin=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 }} --verbose - name: Upload openvino package uses: actions/upload-artifact@v3 @@ -241,28 +175,19 @@ jobs: path: ${{ env.BUILD_DIR }}/openvino_tests.zip if-no-files-found: 'error' - Python_Unit_Tests: + Samples: needs: Build defaults: run: shell: pwsh - runs-on: windows-latest + runs-on: windows-latest-8-cores 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" SAMPLES_INSTALL_DIR: "${{ github.workspace }}\\install\\samples" - LAYER_TESTS_INSTALL_DIR: "${{ github.workspace }}\\install\\tests\\layer_tests" BUILD_DIR: "${{ github.workspace }}\\build" - PYTHON_STATIC_ARGS: -m "not dynamic_library and not template_plugin" steps: - - name: Create Directories - run: | - mkdir ${{ env.INSTALL_DIR }} - mkdir ${{ env.INSTALL_TEST_DIR }} - - name: Download OpenVINO package uses: actions/download-artifact@v3 with: @@ -281,14 +206,78 @@ jobs: Expand-Archive openvino_package.zip -DestinationPath "${{ env.INSTALL_DIR }}" popd pushd ${{ env.INSTALL_TEST_DIR }} - Expand-Archive openvino_tests.zip -DestinationPath "${{ env.INSTALL_TEST_DIR }}" + Expand-Archive openvino_tests.zip -DestinationPath "${{ env.INSTALL_DIR }}" popd - - name: Check extraction + - uses: actions/setup-python@v4 + with: + python-version: ${{ env.PYTHON_VERSION }} + + - name: Build cpp samples run: | - ls "${{ github.workspace }}" - ls "${{ env.INSTALL_DIR }}" - ls "${{ env.INSTALL_TEST_DIR }}" + & ${{ env.SAMPLES_INSTALL_DIR }}/cpp/build_samples_msvc.bat -i ${{ env.INSTALL_DIR }} -b ${{ env.BUILD_DIR }}/cpp_samples + env: + CMAKE_COMPILE_WARNING_AS_ERROR: 'ON' + + - name: Build c samples + run: | + & ${{ env.SAMPLES_INSTALL_DIR }}/c/build_samples_msvc.bat -i ${{ env.INSTALL_DIR }} -b ${{ env.BUILD_DIR }}/c_samples + + - name: Samples tests + shell: cmd + run: | + python3 -m pip install --ignore-installed PyYAML -r ${{ env.INSTALL_TEST_DIR }}/smoke_tests/requirements.txt + call "${{ env.INSTALL_DIR }}\\setupvars.bat" && python3 -m pytest -sv ${{ env.INSTALL_TEST_DIR }}/smoke_tests --env_conf ${{ env.INSTALL_TEST_DIR }}/smoke_tests/env_config.yml --junitxml=${{ env.INSTALL_TEST_DIR }}/TEST-SamplesSmokeTests.xml + env: + IE_APP_PATH: ${{ env.INSTALL_DIR }}/samples_bin + IE_APP_PYTHON_PATH: ${{ env.INSTALL_DIR }}/samples/python + SHARE: ${{ env.INSTALL_TEST_DIR }}/smoke_tests/samples_smoke_tests_data + WORKSPACE: ${{ env.INSTALL_DIR }} + + - name: Upload Test Results + uses: actions/upload-artifact@v3 + if: ${{ !cancelled() }} + with: + name: test-results-samples + path: ${{ env.INSTALL_TEST_DIR }}/TEST*.xml + if-no-files-found: 'error' + + Python_Unit_Tests: + name: Python unit tests + needs: Build + defaults: + run: + shell: pwsh + runs-on: windows-latest + 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" + PYTHON_STATIC_ARGS: -m "not dynamic_library and not template_plugin" + + steps: + - name: Download OpenVINO package + uses: actions/download-artifact@v3 + with: + name: openvino_package + path: ${{ env.INSTALL_DIR }} + + - name: Download OpenVINO tests package + uses: actions/download-artifact@v3 + with: + name: openvino_tests + path: ${{ env.INSTALL_TEST_DIR }} + + - name: Extract OpenVINO packages + run: | + pushd ${{ env.INSTALL_DIR }} + Expand-Archive openvino_package.zip -DestinationPath "${{ env.INSTALL_DIR }}" + popd + pushd ${{ env.INSTALL_TEST_DIR }} + Expand-Archive openvino_tests.zip -DestinationPath "${{ env.INSTALL_DIR }}" + popd - name: Clone OpenVINO uses: actions/checkout@v4 @@ -297,40 +286,25 @@ jobs: - uses: actions/setup-python@v4 with: - python-version: '3.11' + python-version: ${{ env.PYTHON_VERSION }} - - name: Install python dependencies + - name: Install Python API tests 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 torchvision to OpenVINO preprocessing converter + python3 -m pip install -r ${{ env.OPENVINO_REPO }}/src/bindings/python/src/openvino/preprocess/torchvision/requirements.txt - # For running Python API tests - python3 -m pip install -r ${{ env.OPENVINO_REPO }}/src/bindings/python/src/compatibility/openvino/requirements-dev.txt + # TODO: replace with Python API tests requirements + python3 -m pip install -r ${{ env.OPENVINO_REPO }}/tools/mo/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 - - python3 -m pip install -r ${{ env.LAYER_TESTS_INSTALL_DIR }}/requirements.txt - - - name: Install MO dependencies + - name: Install OpenVINO Python wheels run: | - python3 -m pip install -r ${{ env.OPENVINO_REPO }}/tools/mo/requirements_mxnet.txt ` - -r ${{ env.OPENVINO_REPO }}/tools/mo/requirements_caffe.txt ` - -r ${{ env.OPENVINO_REPO }}/tools/mo/requirements_kaldi.txt ` - -r ${{ env.OPENVINO_REPO }}/tools/mo/requirements_onnx.txt ` - -r ${{ env.OPENVINO_REPO }}/tools/mo/requirements_tf2.txt ` - -r ${{ env.OPENVINO_REPO }}/tools/mo/requirements_dev.txt - - - name: Install Python wheels - run: | - python3 -m pip install openvino-dev --force-reinstall --find-links=${{ env.INSTALL_DIR }}\tools + # Find and install the core OV wheel + $ovCoreWheelPath=Get-ChildItem -Path "${{ env.INSTALL_DIR }}\tools" -Filter openvino-*.whl | % { $_.FullName } + python3 -m pip install "$ovCoreWheelPath" + + # Find and install the dev OV wheel + $ovDevWheelPath=Get-ChildItem -Path "${{ env.INSTALL_DIR }}\tools" -Filter openvino_dev*.whl | % { $_.FullName } + python3 -m pip install "$ovDevWheelPath[mxnet,caffe,kaldi,onnx,tensorflow2]" - name: Python API 1.0 Tests shell: cmd @@ -347,37 +321,22 @@ jobs: - name: Model Optimizer UT shell: cmd run: | - - python3 -m pip install -r ${{ env.OPENVINO_REPO }}/tools/mo/requirements_mxnet.txt ^ - -r ${{ env.OPENVINO_REPO }}/tools/mo/requirements_caffe.txt ^ - -r ${{ env.OPENVINO_REPO }}/tools/mo/requirements_kaldi.txt ^ - -r ${{ env.OPENVINO_REPO }}/tools/mo/requirements_onnx.txt ^ - -r ${{ env.OPENVINO_REPO }}/tools/mo/requirements_tf2.txt ^ - -r ${{ env.OPENVINO_REPO }}/tools/mo/requirements_dev.txt - - set PYTHONPATH=${{ env.OPENVINO_REPO }}\tools\mo;${{ env.LAYER_TESTS_INSTALL_DIR }};${{ env.INSTALL_TEST_DIR }};${{ env.INSTALL_DIR }}\python\python3.11;%PYTHONPATH% + set PYTHONPATH=${{ env.OPENVINO_REPO }}\tools\mo;${{ env.LAYER_TESTS_INSTALL_DIR }};${{ env.INSTALL_TEST_DIR }};${{ env.INSTALL_DIR }}\python\python${{ env.PYTHON_VERSION }};%PYTHONPATH% call "${{ env.INSTALL_DIR }}\\setupvars.bat" && 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 -# Ticket - 115085 -# - name: PyTorch Layer Tests -# shell: cmd -# run: | -# -# python3 -m pip install -r ${{ env.OPENVINO_REPO }}/tools/mo/requirements_mxnet.txt ^ -# -r ${{ env.OPENVINO_REPO }}/tools/mo/requirements_caffe.txt ^ -# -r ${{ env.OPENVINO_REPO }}/tools/mo/requirements_kaldi.txt ^ -# -r ${{ env.OPENVINO_REPO }}/tools/mo/requirements_onnx.txt ^ -# -r ${{ env.OPENVINO_REPO }}/tools/mo/requirements_tf2.txt ^ -# -r ${{ env.OPENVINO_REPO }}/tools/mo/requirements_dev.txt -# -# python3 -m pip install -r ${{ env.LAYER_TESTS_INSTALL_DIR }}/requirements.txt -# -# set PYTHONPATH=${{ env.OPENVINO_REPO }}\tools\mo;${{ env.LAYER_TESTS_INSTALL_DIR }};%PYTHONPATH% -# -# call "${{ env.INSTALL_DIR }}\\setupvars.bat" && python3 -m pytest ${{ env.LAYER_TESTS_INSTALL_DIR }}/pytorch_tests -m precommit --junitxml=${{ env.INSTALL_TEST_DIR }}/TEST-pytorch.xml -# env: -# TEST_DEVICE: CPU + # Ticket - 115085 + - name: PyTorch Layer Tests + if: ${{ 'false' }} + shell: cmd + run: | + python3 -m pip install -r ${{ env.LAYER_TESTS_INSTALL_DIR }}/requirements.txt + + set PYTHONPATH=${{ env.OPENVINO_REPO }}\tools\mo;${{ env.LAYER_TESTS_INSTALL_DIR }};%PYTHONPATH% + + call "${{ env.INSTALL_DIR }}\\setupvars.bat" && python3 -m pytest ${{ env.LAYER_TESTS_INSTALL_DIR }}/pytorch_tests -m precommit --junitxml=${{ env.INSTALL_TEST_DIR }}/TEST-pytorch.xml + env: + TEST_DEVICE: CPU - name: TensorFlow 1 Layer Tests - TF FE shell: cmd @@ -426,18 +385,25 @@ jobs: run: | python3 -m pip install -r ${{ env.LAYER_TESTS_INSTALL_DIR }}/requirements.txt - python3 -m pip install -r ${{ env.OPENVINO_REPO }}/tools/mo/requirements_mxnet.txt ^ - -r ${{ env.OPENVINO_REPO }}/tools/mo/requirements_caffe.txt ^ - -r ${{ env.OPENVINO_REPO }}/tools/mo/requirements_kaldi.txt ^ - -r ${{ env.OPENVINO_REPO }}/tools/mo/requirements_onnx.txt ^ - -r ${{ env.OPENVINO_REPO }}/tools/mo/requirements_tf2.txt ^ - -r ${{ env.OPENVINO_REPO }}/tools/mo/requirements_dev.txt - set PYTHONPATH=${{ env.OPENVINO_REPO }}\tools\mo;${{ env.LAYER_TESTS_INSTALL_DIR }};%PYTHONPATH% call "${{ env.INSTALL_DIR }}\\setupvars.bat" && 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: TensorFlow Lite Layer Tests - TFL FE + shell: cmd + 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 pip install -r ${{ env.LAYER_TESTS_INSTALL_DIR }}/requirements.txt + + set PYTHONPATH=${{ env.OPENVINO_REPO }}\tools\mo;${{ env.LAYER_TESTS_INSTALL_DIR }};%PYTHONPATH% + + python3 -m pytest ${{ 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 ^ + --ignore=${{ env.OPENVINO_REPO }}/src/frontends/onnx/tests/test_python/test_backend.py - name: MO Python API Tests shell: cmd @@ -449,6 +415,19 @@ jobs: call "${{ env.INSTALL_DIR }}\\setupvars.bat" && 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 + shell: cmd + run: | + python3 -m pip install -r ${{ env.LAYER_TESTS_INSTALL_DIR }}/requirements.txt + + set PYTHONPATH=${{ env.OPENVINO_REPO }}\tools\mo;${{ env.LAYER_TESTS_INSTALL_DIR }};%PYTHONPATH% + + call "${{ env.INSTALL_DIR }}\\setupvars.bat" && 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: Python Frontend tests shell: cmd @@ -468,6 +447,7 @@ jobs: if-no-files-found: 'error' CXX_Unit_Tests: + name: C++ unit tests needs: Build defaults: run: @@ -478,11 +458,6 @@ jobs: INSTALL_TEST_DIR: "${{ github.workspace }}\\install\\tests" steps: - - name: Create Directories - run: | - mkdir ${{ env.INSTALL_DIR }} - mkdir ${{ env.INSTALL_TEST_DIR }} - - name: Download OpenVINO package uses: actions/download-artifact@v3 with: @@ -501,15 +476,9 @@ jobs: Expand-Archive openvino_package.zip -DestinationPath "${{ env.INSTALL_DIR }}" popd pushd ${{ env.INSTALL_TEST_DIR }} - Expand-Archive openvino_tests.zip -DestinationPath "${{ env.INSTALL_TEST_DIR }}" + Expand-Archive openvino_tests.zip -DestinationPath "${{ env.INSTALL_DIR }}" popd - - name: Check extraction - run: | - ls "${{ github.workspace }}" - ls "${{ env.INSTALL_DIR }}" - ls "${{ env.INSTALL_TEST_DIR }}" - - name: OpenVINO Core unit tests shell: cmd run: | @@ -540,15 +509,16 @@ jobs: run: | call "${{ env.INSTALL_DIR }}\\setupvars.bat" && ${{ 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 # Disabled in Azure: https://github.com/openvinotoolkit/openvino/blob/master/.ci/azure/linux.yml#L403 - # shell: cmd - # run: | - # call "${{ env.INSTALL_DIR }}\\setupvars.bat" && ${{ env.INSTALL_TEST_DIR }}/paddle_tests --gtest_print_time=1 --gtest_filter=*smoke* --gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-PaddleTests.xml + - name: PaddlePaddle frontend tests # Disabled in Azure: https://github.com/openvinotoolkit/openvino/blob/master/.ci/azure/linux.yml#L403 + if: ${{ 'false' }} + shell: cmd + run: | + call "${{ env.INSTALL_DIR }}\\setupvars.bat" && ${{ 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 # Present in the "Build" job due to the fact that these tests require build directory - # shell: cmd - # run: | - # call "${{ env.INSTALL_DIR }}\\setupvars.bat" && ${{ 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: ONNX frontend tests + shell: cmd + run: | + call "${{ env.INSTALL_DIR }}\\setupvars.bat" && ${{ 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 shell: cmd @@ -570,6 +540,16 @@ jobs: run: | call "${{ env.INSTALL_DIR }}\\setupvars.bat" && ${{ env.INSTALL_TEST_DIR }}/ov_transformations_tests --gtest_print_time=1 --gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-Transformations.xml + - name: Legacy Transformations func tests + shell: cmd + run: | + call "${{ env.INSTALL_DIR }}\\setupvars.bat" && ${{ env.INSTALL_TEST_DIR }}/ov_legacy_transformations_tests --gtest_print_time=1 --gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-LegacyTransformations.xml + + - name: Inference Engine 1.0 unit tests + shell: cmd + run: | + call "${{ env.INSTALL_DIR }}\\setupvars.bat" && ${{ env.INSTALL_TEST_DIR }}/InferenceEngineUnitTests --gtest_print_time=1 --gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-InferenceEngineUnitTests.xml + - name: Common test utils tests shell: cmd run: | @@ -585,10 +565,10 @@ jobs: run: | call "${{ env.INSTALL_DIR }}\\setupvars.bat" && ${{ env.INSTALL_TEST_DIR }}/ov_cpu_unit_tests --gtest_print_time=1 --gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-CPUUnitTests.xml - # - name: GNA plugin unit tests # Disabled in Azure: https://github.com/openvinotoolkit/openvino/blob/master/.ci/azure/linux.yml#L434 - # shell: cmd - # run: | - # call "${{ env.INSTALL_DIR }}\\setupvars.bat" && ${{ env.INSTALL_TEST_DIR }}/ov_gna_unit_tests --gtest_print_time=1 --gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-GNAUnitTests.xml + - name: GNA plugin unit tests + shell: cmd + run: | + call "${{ env.INSTALL_DIR }}\\setupvars.bat" && ${{ env.INSTALL_TEST_DIR }}/ov_gna_unit_tests --gtest_print_time=1 --gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-GNAUnitTests.xml - name: AUTO UT shell: cmd @@ -615,6 +595,11 @@ jobs: run: | call "${{ env.INSTALL_DIR }}\\setupvars.bat" && ${{ 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 + shell: cmd + run: | + call "${{ env.INSTALL_DIR }}\\setupvars.bat" && ${{ 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 FuncTests shell: cmd run: | @@ -644,6 +629,7 @@ jobs: if-no-files-found: 'error' CPU_Functional_Tests: + name: CPU functional tests needs: Build defaults: run: @@ -656,11 +642,6 @@ jobs: PARALLEL_TEST_CACHE: "${{ github.workspace }}\\install\\tests\\test_cache.lst" steps: - - name: Create Directories - run: | - mkdir ${{ env.INSTALL_DIR }} - mkdir ${{ env.INSTALL_TEST_DIR }} - - name: Download OpenVINO package uses: actions/download-artifact@v3 with: @@ -679,20 +660,16 @@ jobs: Expand-Archive openvino_package.zip -DestinationPath "${{ env.INSTALL_DIR }}" popd pushd ${{ env.INSTALL_TEST_DIR }} - Expand-Archive openvino_tests.zip -DestinationPath "${{ env.INSTALL_TEST_DIR }}" + Expand-Archive openvino_tests.zip -DestinationPath "${{ env.INSTALL_DIR }}" popd - - name: Check extraction - run: | - ls "${{ github.workspace }}" - ls "${{ env.INSTALL_DIR }}" - ls "${{ env.INSTALL_TEST_DIR }}" + - uses: actions/setup-python@v4 + with: + python-version: ${{ env.PYTHON_VERSION }} - name: Install python dependencies shell: cmd - run: | - python3 -m pip install --upgrade pip - python3 -m pip install -r ${{ github.workspace }}\install\tests\functional_test_utils\layer_tests_summary\requirements.txt + run: python3 -m pip install -r ${{ github.workspace }}\install\tests\functional_test_utils\layer_tests_summary\requirements.txt - name: Restore tests execution time uses: actions/cache/restore@v3