From 9e2933c29e7db3d07b45284fc17519bdf6b425cc Mon Sep 17 00:00:00 2001 From: Andrei Kashchikhin Date: Thu, 11 Jan 2024 06:29:32 +0000 Subject: [PATCH] [SCRIPTS] Introduce `setupvars` for Powershell (#22013) * start with pwsh setupvars * formatting, add last sections with python checks * use script path for dir setting; add ps1 script to install * use pwsh script * rm from other distr; rm unnecessary OpenCV * use the same component for both win setupvars; rm obsolete env vars * rm spaces * use single install; rm unused var --- .github/workflows/windows.yml | 129 ++++++++++++++++---------------- scripts/CMakeLists.txt | 21 ++---- scripts/setupvars/setupvars.ps1 | 116 ++++++++++++++++++++++++++++ 3 files changed, 188 insertions(+), 78 deletions(-) create mode 100644 scripts/setupvars/setupvars.ps1 diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 76867377121..a294f6fb747 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -229,7 +229,7 @@ jobs: if-no-files-found: 'error' Samples: - needs: [Build, Smart_CI] + needs: [ Build, Smart_CI ] if: fromJSON(needs.smart_ci.outputs.affected_components).samples timeout-minutes: 20 defaults: @@ -291,10 +291,10 @@ jobs: & ${{ 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.INSTALL_DIR }}/setupvars.ps1" + 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 @@ -356,7 +356,7 @@ jobs: Python_Unit_Tests: name: Python unit tests - needs: [Build, Smart_CI] + needs: [ Build, Smart_CI ] timeout-minutes: 75 defaults: run: @@ -551,9 +551,9 @@ jobs: - name: Python Frontend tests if: fromJSON(needs.smart_ci.outputs.affected_components).PyTorch_FE.test || fromJSON(needs.smart_ci.outputs.affected_components).PDPD_FE.test - shell: cmd run: | - call "${{ env.INSTALL_DIR }}\\setupvars.bat" && python3 -m pytest ${{ env.LAYER_TESTS_INSTALL_DIR }}/py_frontend_tests --junitxml=${{ env.INSTALL_TEST_DIR }}/TEST-test_py_fontend.xml + & "${{ env.INSTALL_DIR }}/setupvars.ps1" + python3 -m pytest ${{ env.LAYER_TESTS_INSTALL_DIR }}/py_frontend_tests --junitxml=${{ env.INSTALL_TEST_DIR }}/TEST-test_py_fontend.xml - name: OVC unit tests if: fromJSON(needs.smart_ci.outputs.affected_components).MO.test @@ -570,7 +570,7 @@ jobs: CXX_Unit_Tests: name: C++ unit tests - needs: [Build, Smart_CI] + needs: [ Build, Smart_CI ] timeout-minutes: 25 defaults: run: @@ -604,158 +604,158 @@ jobs: - name: OpenVINO Core unit tests if: fromJSON(needs.smart_ci.outputs.affected_components).Core.test - shell: cmd run: | - call "${{ env.INSTALL_DIR }}\\setupvars.bat" && ${{ 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 + & "${{ env.INSTALL_DIR }}/setupvars.ps1" + ${{ 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 if: fromJSON(needs.smart_ci.outputs.affected_components).inference.test - shell: cmd run: | - call "${{ env.INSTALL_DIR }}\\setupvars.bat" && ${{ env.INSTALL_TEST_DIR }}/ov_inference_functional_tests --gtest_print_time=1 --gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-InferenceFunc.xml + & "${{ env.INSTALL_DIR }}/setupvars.ps1" + ${{ 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 if: fromJSON(needs.smart_ci.outputs.affected_components).inference.test - shell: cmd run: | - call "${{ env.INSTALL_DIR }}\\setupvars.bat" && ${{ env.INSTALL_TEST_DIR }}/ov_inference_unit_tests --gtest_print_time=1 --gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-InferenceUnit.xml + & "${{ env.INSTALL_DIR }}/setupvars.ps1" + ${{ 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 if: fromJSON(needs.smart_ci.outputs.affected_components).LP_transformations.test - shell: cmd run: | - call "${{ env.INSTALL_DIR }}\\setupvars.bat" && ${{ env.INSTALL_TEST_DIR }}/ov_lp_transformations_tests --gtest_print_time=1 --gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-LpTransformations.xml + & "${{ env.INSTALL_DIR }}/setupvars.ps1" + ${{ env.INSTALL_TEST_DIR }}/ov_lp_transformations_tests --gtest_print_time=1 --gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-LpTransformations.xml - name: OpenVINO Conditional compilation tests if: fromJSON(needs.smart_ci.outputs.affected_components).Core.test - shell: cmd run: | - call "${{ env.INSTALL_DIR }}\\setupvars.bat" && ${{ env.INSTALL_TEST_DIR }}/ov_conditional_compilation_tests --gtest_print_time=1 --gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-ConditionalCompilation.xml + & "${{ env.INSTALL_DIR }}/setupvars.ps1" + ${{ 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 if: fromJSON(needs.smart_ci.outputs.affected_components).IR_FE.test - shell: cmd 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 + & "${{ env.INSTALL_DIR }}/setupvars.ps1" + ${{ 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 because of CVS-95904 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 + & "${{ env.INSTALL_DIR }}/setupvars.ps1" + ${{ 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: fromJSON(needs.smart_ci.outputs.affected_components).ONNX_FE.test - 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 + & "${{ env.INSTALL_DIR }}/setupvars.ps1" + ${{ 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 frontend tests if: fromJSON(needs.smart_ci.outputs.affected_components).TF_FE.test || fromJSON(needs.smart_ci.outputs.affected_components).TFL_FE.test - shell: cmd run: | - call "${{ env.INSTALL_DIR }}\\setupvars.bat" && ${{ env.INSTALL_TEST_DIR }}/ov_tensorflow_common_tests --gtest_print_time=1 --gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-TensorFlowCommonFrontend.xml + & "${{ env.INSTALL_DIR }}/setupvars.ps1" + ${{ 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 if: fromJSON(needs.smart_ci.outputs.affected_components).TF_FE.test - shell: cmd run: | - call "${{ env.INSTALL_DIR }}\\setupvars.bat" && ${{ env.INSTALL_TEST_DIR }}/ov_tensorflow_frontend_tests --gtest_print_time=1 --gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-TensorFlowFrontend.xml + & "${{ env.INSTALL_DIR }}/setupvars.ps1" + ${{ env.INSTALL_TEST_DIR }}/ov_tensorflow_frontend_tests --gtest_print_time=1 --gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-TensorFlowFrontend.xml - name: TensorFlow Lite frontend tests if: fromJSON(needs.smart_ci.outputs.affected_components).TFL_FE.test - shell: cmd run: | - :: Skip ticket: 126320 - call "${{ env.INSTALL_DIR }}\\setupvars.bat" && ${{ env.INSTALL_TEST_DIR }}/ov_tensorflow_lite_frontend_tests --gtest_print_time=1 --gtest_filter=-*test_decode_convert_equal_convert*:*test_convert_partially_equal_convert* --gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-TensorFlowLiteFrontend.xml + # Skip ticket: 126320 + & "${{ env.INSTALL_DIR }}/setupvars.ps1" + ${{ env.INSTALL_TEST_DIR }}/ov_tensorflow_lite_frontend_tests --gtest_print_time=1 --gtest_filter=-*test_decode_convert_equal_convert*:*test_convert_partially_equal_convert* --gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-TensorFlowLiteFrontend.xml - name: Transformations func tests if: fromJSON(needs.smart_ci.outputs.affected_components).transformations.test - shell: cmd 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 + & "${{ env.INSTALL_DIR }}/setupvars.ps1" + ${{ env.INSTALL_TEST_DIR }}/ov_transformations_tests --gtest_print_time=1 --gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-Transformations.xml - name: Common test utils tests - shell: cmd run: | - call "${{ env.INSTALL_DIR }}\\setupvars.bat" && ${{ env.INSTALL_TEST_DIR }}/ov_util_tests --gtest_print_time=1 --gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-commonUtilsTests.xml + & "${{ env.INSTALL_DIR }}/setupvars.ps1" + ${{ 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 if: fromJSON(needs.smart_ci.outputs.affected_components).CPU.test - shell: cmd run: | - call "${{ env.INSTALL_DIR }}\\setupvars.bat" && ${{ env.INSTALL_TEST_DIR }}/ov_snippets_func_tests --gtest_print_time=1 --gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-SnippetsFuncTests.xml + & "${{ env.INSTALL_DIR }}/setupvars.ps1" + ${{ 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 if: fromJSON(needs.smart_ci.outputs.affected_components).CPU.test - shell: cmd 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 + & "${{ env.INSTALL_DIR }}/setupvars.ps1" + ${{ env.INSTALL_TEST_DIR }}/ov_cpu_unit_tests --gtest_print_time=1 --gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-CPUUnitTests.xml - name: ov_subgraphs_dumper_tests tests - shell: cmd run: | - call "${{ env.INSTALL_DIR }}\\setupvars.bat" && ${{ env.INSTALL_TEST_DIR }}/ov_subgraphs_dumper_tests --gtest_print_time=1 --device=TEMPLATE --gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-SubgraphsDumperTests.xml + & "${{ env.INSTALL_DIR }}/setupvars.ps1" + ${{ env.INSTALL_TEST_DIR }}/ov_subgraphs_dumper_tests --gtest_print_time=1 --device=TEMPLATE --gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-SubgraphsDumperTests.xml - name: Template OpImpl tests - shell: cmd run: | - call "${{ env.INSTALL_DIR }}\\setupvars.bat" && ${{ env.INSTALL_TEST_DIR }}/ov_op_conformance_tests --gtest_print_time=1 --gtest_filter="*OpImpl*" --gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-TemplateOpImplTests.xml + & "${{ env.INSTALL_DIR }}/setupvars.ps1" + ${{ env.INSTALL_TEST_DIR }}/ov_op_conformance_tests --gtest_print_time=1 --gtest_filter="*OpImpl*" --gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-TemplateOpImplTests.xml - name: AUTO unit tests if: fromJSON(needs.smart_ci.outputs.affected_components).AUTO.test - shell: cmd run: | - call "${{ env.INSTALL_DIR }}\\setupvars.bat" && ${{ 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 + & "${{ env.INSTALL_DIR }}/setupvars.ps1" + ${{ 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 if: fromJSON(needs.smart_ci.outputs.affected_components).AUTO.test - shell: cmd run: | - call "${{ env.INSTALL_DIR }}\\setupvars.bat" && ${{ 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 + & "${{ env.INSTALL_DIR }}/setupvars.ps1" + ${{ 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 if: fromJSON(needs.smart_ci.outputs.affected_components).TEMPLATE.test - shell: cmd run: | - call "${{ env.INSTALL_DIR }}\\setupvars.bat" && ${{ 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 + & "${{ env.INSTALL_DIR }}/setupvars.ps1" + ${{ 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: OpenVINO C API tests if: fromJSON(needs.smart_ci.outputs.affected_components).C_API.test - shell: cmd 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 + & "${{ env.INSTALL_DIR }}/setupvars.ps1" + ${{ 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 if: fromJSON(needs.smart_ci.outputs.affected_components).AUTO_BATCH.test - 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 + & "${{ env.INSTALL_DIR }}/setupvars.ps1" + ${{ 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 if: fromJSON(needs.smart_ci.outputs.affected_components).AUTO_BATCH.test - shell: cmd run: | - call "${{ env.INSTALL_DIR }}\\setupvars.bat" && ${{ env.INSTALL_TEST_DIR }}/ov_auto_batch_func_tests --gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-ov_auto_batch_func_tests.xml + & "${{ env.INSTALL_DIR }}/setupvars.ps1" + ${{ 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 if: fromJSON(needs.smart_ci.outputs.affected_components).PROXY.test - shell: cmd run: | - call "${{ env.INSTALL_DIR }}\\setupvars.bat" && ${{ env.INSTALL_TEST_DIR }}/ov_proxy_plugin_tests --gtest_print_time=1 --gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-OVProxyTests.xml + & "${{ env.INSTALL_DIR }}/setupvars.ps1" + ${{ 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 if: fromJSON(needs.smart_ci.outputs.affected_components).HETERO.test - shell: cmd run: | - call "${{ env.INSTALL_DIR }}\\setupvars.bat" && ${{ env.INSTALL_TEST_DIR }}/ov_hetero_unit_tests --gtest_print_time=1 --gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-OVHeteroUnitTests.xml + & "${{ env.INSTALL_DIR }}/setupvars.ps1" + ${{ 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 if: fromJSON(needs.smart_ci.outputs.affected_components).HETERO.test - shell: cmd run: | - call "${{ env.INSTALL_DIR }}\\setupvars.bat" && ${{ env.INSTALL_TEST_DIR }}/ov_hetero_func_tests --gtest_print_time=1 --gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-OVHeteroFuncTests.xml + & "${{ env.INSTALL_DIR }}/setupvars.ps1" + ${{ 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 @@ -767,7 +767,7 @@ jobs: CPU_Functional_Tests: name: CPU functional tests - needs: [Build, Smart_CI] + needs: [ Build, Smart_CI ] timeout-minutes: 70 defaults: run: @@ -818,7 +818,6 @@ jobs: self-hosted-runner: 'true' - name: Install python dependencies - shell: cmd run: python3 -m pip install -r ${{ github.workspace }}\install\tests\functional_test_utils\layer_tests_summary\requirements.txt - name: Restore tests execution time @@ -830,9 +829,9 @@ jobs: ${{ runner.os }}-tests-functional-cpu-stamp - name: Intel CPU plugin func tests (parallel) - shell: cmd run: | - call "${{ env.INSTALL_DIR }}\\setupvars.bat" && python3 ${{ env.PARALLEL_TEST_SCRIPT }} -e ${{ env.INSTALL_TEST_DIR }}\ov_cpu_func_tests.exe -c ${{ env.PARALLEL_TEST_CACHE }} -w ${{ env.INSTALL_TEST_DIR }} -s suite -- --gtest_filter=*smoke*" + & "${{ env.INSTALL_DIR }}/setupvars.ps1" + python3 ${{ env.PARALLEL_TEST_SCRIPT }} -e ${{ env.INSTALL_TEST_DIR }}/ov_cpu_func_tests.exe -c ${{ env.PARALLEL_TEST_CACHE }} -w ${{ env.INSTALL_TEST_DIR }} -s suite -- --gtest_filter=*smoke* timeout-minutes: 60 - name: Save tests execution time @@ -860,7 +859,7 @@ jobs: Overall_Status: name: ci/gha_overall_status_windows - needs: [Smart_CI, Build, Samples, CXX_Unit_Tests, Python_Unit_Tests, CPU_Functional_Tests] + needs: [ Smart_CI, Build, Samples, CXX_Unit_Tests, Python_Unit_Tests, CPU_Functional_Tests ] if: ${{ always() }} runs-on: ubuntu-latest steps: diff --git a/scripts/CMakeLists.txt b/scripts/CMakeLists.txt index c76904c7270..6506fb80991 100644 --- a/scripts/CMakeLists.txt +++ b/scripts/CMakeLists.txt @@ -27,23 +27,18 @@ ov_shellcheck_process(DIRECTORY "${OpenVINO_SOURCE_DIR}" ov_cpack_add_component(${OV_CPACK_COMP_SETUPVARS} HIDDEN) if(UNIX) - set(_setupvars_file_full_path "${CMAKE_CURRENT_SOURCE_DIR}/setupvars/setupvars.sh") + set(_setupvars_files "${CMAKE_CURRENT_SOURCE_DIR}/setupvars/setupvars.sh") elseif(WIN32) + # setupvars.bat set(_setupvars_file "setupvars/setupvars.bat") - set(_setupvars_file_full_path "${CMAKE_CURRENT_SOURCE_DIR}/${_setupvars_file}") - if(USE_BUILD_TYPE_SUBFOLDER AND CMAKE_BUILD_TYPE AND NOT CMAKE_BUILD_TYPE MATCHES "^(Debug|Release)$") - # Patch primary configuration in setupvars.bat which is "Release" by default. - # Note setupvars secondary configuration is always "Debug". - message(STATUS "Patching content of ${_setupvars_file_full_path} for CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}") - file(READ "${_setupvars_file_full_path}" _setupvars_content) - string(REPLACE "Release" ${CMAKE_BUILD_TYPE} _setupvars_content "${_setupvars_content}") - set(_setupvars_file_full_path "${OpenVINO_BINARY_DIR}/${_setupvars_file}") - message(STATUS "Writing patched content to ${_setupvars_file_full_path}") - file(WRITE "${_setupvars_file_full_path}" "${_setupvars_content}") - endif() + set(_setupvars_files "${CMAKE_CURRENT_SOURCE_DIR}/${_setupvars_file}") + + # setupvars.ps1 + set(_setupvars_file_pwsh "setupvars/setupvars.ps1") + list(APPEND _setupvars_files "${CMAKE_CURRENT_SOURCE_DIR}/${_setupvars_file_pwsh}") endif() -install(PROGRAMS "${_setupvars_file_full_path}" +install(PROGRAMS ${_setupvars_files} DESTINATION . COMPONENT ${OV_CPACK_COMP_SETUPVARS} ${OV_CPACK_COMP_SETUPVARS_EXCLUDE_ALL}) diff --git a/scripts/setupvars/setupvars.ps1 b/scripts/setupvars/setupvars.ps1 new file mode 100644 index 00000000000..f64869b0455 --- /dev/null +++ b/scripts/setupvars/setupvars.ps1 @@ -0,0 +1,116 @@ +# Copyright (C) 2018-2024 Intel Corporation +# SPDX-License-Identifier: Apache-2.0 + +# Arguments parsing +param ( + [string]$python_version +) + +$Env:INTEL_OPENVINO_DIR = Split-Path $MyInvocation.MyCommand.Path + +$Env:OpenVINO_DIR = "$Env:INTEL_OPENVINO_DIR/runtime/cmake" +$Env:OPENVINO_LIB_PATHS = "$Env:INTEL_OPENVINO_DIR/runtime/bin/intel64/Release;$Env:INTEL_OPENVINO_DIR/runtime/bin/intel64/Debug;$Env:OPENVINO_LIB_PATHS" + +# TBB +if (Test-Path -Path "$Env:INTEL_OPENVINO_DIR/runtime/3rdparty/tbb") +{ + $prefix = "" + if (Test-Path -Path "$Env:INTEL_OPENVINO_DIR/runtime/3rdparty/tbb/redist") + { + $prefix = "$Env:INTEL_OPENVINO_DIR/runtime/3rdparty/tbb/redist/intel64/vc14" + } + elseif (Test-Path -Path "$Env:INTEL_OPENVINO_DIR/runtime/3rdparty/tbb/bin/intel64/vc14") + { + $prefix = "$Env:INTEL_OPENVINO_DIR/runtime/3rdparty/tbb/bin/intel64/vc14" + } + elseif (Test-Path -Path "$Env:INTEL_OPENVINO_DIR/runtime/3rdparty/tbb/bin") + { + $prefix = "$Env:INTEL_OPENVINO_DIR/runtime/3rdparty/tbb/bin" + } + + if ($prefix) + { + $Env:OPENVINO_LIB_PATHS = "$prefix;$Env:OPENVINO_LIB_PATHS" + } + + if (Test-Path -Path "$Env:INTEL_OPENVINO_DIR/runtime/3rdparty/tbb/cmake") + { + $Env:TBB_DIR = "$Env:INTEL_OPENVINO_DIR/runtime/3rdparty/tbb/cmake" + } + elseif (Test-Path -Path "$Env:INTEL_OPENVINO_DIR/runtime/3rdparty/tbb/lib/cmake/TBB") + { + $Env:TBB_DIR = "$Env:INTEL_OPENVINO_DIR/runtime/3rdparty/tbb/lib/cmake/TBB" + } + elseif (Test-Path -Path "$Env:INTEL_OPENVINO_DIR/runtime/3rdparty/tbb/lib64/cmake/TBB") + { + $Env:TBB_DIR = "$Env:INTEL_OPENVINO_DIR/runtime/3rdparty/tbb/lib64/cmake/TBB" + } + elseif (Test-Path -Path "$Env:INTEL_OPENVINO_DIR/runtime/3rdparty/tbb/lib/cmake/tbb") + { + $Env:TBB_DIR = "$Env:INTEL_OPENVINO_DIR/runtime/3rdparty/tbb/lib/cmake/tbb" + } +} + +# Add libs directories to the PATH +$Env:PATH = "$Env:OPENVINO_LIB_PATHS;$Env:PATH" + +Write-Host "[setupvars] OpenVINO environment initialized" + +# Check if Python is installed +$PYTHON_VERSION_MAJOR = 3 +$MIN_REQUIRED_PYTHON_VERSION_MINOR = 8 +$MAX_SUPPORTED_PYTHON_VERSION_MINOR = 12 + +try +{ + # Should select the latest installed Python version as per https://docs.python.org/3/using/windows.html#getting-started + (py --version) | Out-Null +} +catch +{ + Write-Host "Warning: Python is not installed. Please install one of Python $PYTHON_VERSION_MAJOR.$MIN_REQUIRED_PYTHON_VERSION_MINOR - $PYTHON_VERSION_MAJOR.$MAX_SUPPORTED_PYTHON_VERSION_MINOR (64-bit) from https://www.python.org/downloads/" + # Python is not mandatory so we can safely exit with 0 + Exit 0 +} + +# Check Python version if user did not pass -python_version +if (-not $python_version) +{ + $installed_python_version_major = [int](py -c "import sys; print(f'{sys.version_info[0]}')") + $installed_python_version_minor = [int](py -c "import sys; print(f'{sys.version_info[1]}')") +} +else +{ + [int]$installed_python_version_major, [int]$installed_python_version_minor = $python_version.Split('.') +} + +if (-not ($PYTHON_VERSION_MAJOR -eq $installed_python_version_major -and $installed_python_version_minor -ge $MIN_REQUIRED_PYTHON_VERSION_MINOR -and $installed_python_version_minor -le $MAX_SUPPORTED_PYTHON_VERSION_MINOR)) +{ + Write-Host "Warning: Unsupported Python version $installed_python_version_major.$installed_python_version_minor. Please install one of Python $PYTHON_VERSION_MAJOR.$MIN_REQUIRED_PYTHON_VERSION_MINOR - $PYTHON_VERSION_MAJOR.$MAX_SUPPORTED_PYTHON_VERSION_MINOR (64-bit) from https://www.python.org/downloads/" + # Python is not mandatory so we can safely exit with 0 + Exit 0 +} + + +# Check Python bitness +try +{ + $python_bitness = (py -c "import sys; print(64 if sys.maxsize > 2**32 else 32)") +} +catch +{ + Write-Host "Warning: Cannot determine installed Python bitness" + # Python is not mandatory so we can safely exit with 0 + Exit 0 +} + +if ($python_bitness -ne "64") +{ + Write-Host "Warning: Unsupported Python bitness. Please install one of Python $PYTHON_VERSION_MAJOR.$MIN_REQUIRED_PYTHON_VERSION_MINOR - $PYTHON_VERSION_MAJOR.$MAX_SUPPORTED_PYTHON_VERSION_MINOR (64-bit) from https://www.python.org/downloads/" + # Python is not mandatory so we can safely exit with 0 + Exit 0 +} + +$Env:PYTHONPATH = "$Env:INTEL_OPENVINO_DIR/python;$Env:INTEL_OPENVINO_DIR/python/python3;$Env:PYTHONPATH" + +Write-Host "[setupvars] OpenVINO Python environment initialized"