Skip to content

Commit

Permalink
[SCRIPTS] Introduce build_samples for Powershell (#22185)
Browse files Browse the repository at this point in the history
* add pwsh build_samples script

* install ps1 script, use it for win workflow

* correct syntax

* use pwsh script in win cc samples building

* align args; add aliases; rm postfixes

* return postfix for bat
  • Loading branch information
akashchi authored Jan 20, 2024
1 parent efa7e3b commit 312ffb1
Show file tree
Hide file tree
Showing 4 changed files with 113 additions and 33 deletions.
75 changes: 44 additions & 31 deletions .github/workflows/windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -280,27 +280,40 @@ jobs:
should-setup-pip-paths: 'false'
self-hosted-runner: 'true'

# Test with the short names of the arguments
- name: Build cpp samples
run: |
& ${{ env.SAMPLES_INSTALL_DIR }}/cpp/build_samples_msvc.bat -i ${{ env.INSTALL_DIR }} -b ${{ env.BUILD_DIR }}/cpp_samples
& ${{ env.SAMPLES_INSTALL_DIR }}/cpp/build_samples.ps1 -i ${{ env.INSTALL_DIR }} -b ${{ env.BUILD_DIR }}/cpp_samples
env:
CMAKE_COMPILE_WARNING_AS_ERROR: 'ON'

# Test with the full names of the arguments
- name: Build c samples
run: |
& ${{ env.SAMPLES_INSTALL_DIR }}/c/build_samples_msvc.bat -i ${{ env.INSTALL_DIR }} -b ${{ env.BUILD_DIR }}/c_samples
& ${{ env.SAMPLES_INSTALL_DIR }}/c/build_samples.ps1 -InstallDirectory ${{ env.INSTALL_DIR }} -BuildDirectory ${{ env.BUILD_DIR }}/c_samples
- name: Samples tests
run: |
python3 -m pip install --ignore-installed PyYAML -r ${{ env.INSTALL_TEST_DIR }}/smoke_tests/requirements.txt
& "${{ env.INSTALL_DIR }}/setupvars.ps1"
. "${{ 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
SHARE: ${{ env.INSTALL_TEST_DIR }}/smoke_tests/samples_smoke_tests_data
WORKSPACE: ${{ env.INSTALL_DIR }}

# Test .bat scripts for samples building
- name: Build cpp samples (bat)
run: |
& ${{ env.SAMPLES_INSTALL_DIR }}/cpp/build_samples_msvc.bat -i ${{ env.INSTALL_DIR }}/samples_bat -b ${{ env.BUILD_DIR }}/cpp_samples_bat
env:
CMAKE_COMPILE_WARNING_AS_ERROR: 'ON'

- name: Build c samples (bat)
run: |
& ${{ env.SAMPLES_INSTALL_DIR }}/c/build_samples_msvc.bat -i ${{ env.INSTALL_DIR }}/samples_bat -b ${{ env.BUILD_DIR }}/c_samples_bat
- name: Upload Test Results
uses: actions/upload-artifact@v3
if: ${{ !cancelled() }}
Expand Down Expand Up @@ -552,7 +565,7 @@ jobs:
if: fromJSON(needs.smart_ci.outputs.affected_components).PyTorch_FE.test ||
fromJSON(needs.smart_ci.outputs.affected_components).PDPD_FE.test
run: |
& "${{ env.INSTALL_DIR }}/setupvars.ps1"
. "${{ 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
Expand Down Expand Up @@ -605,156 +618,156 @@ jobs:
- name: OpenVINO Core unit tests
if: fromJSON(needs.smart_ci.outputs.affected_components).Core.test
run: |
& "${{ env.INSTALL_DIR }}/setupvars.ps1"
. "${{ 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
run: |
& "${{ env.INSTALL_DIR }}/setupvars.ps1"
. "${{ 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
run: |
& "${{ env.INSTALL_DIR }}/setupvars.ps1"
. "${{ 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
run: |
& "${{ env.INSTALL_DIR }}/setupvars.ps1"
. "${{ 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
run: |
& "${{ env.INSTALL_DIR }}/setupvars.ps1"
. "${{ 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
run: |
& "${{ env.INSTALL_DIR }}/setupvars.ps1"
. "${{ 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' }}
run: |
& "${{ env.INSTALL_DIR }}/setupvars.ps1"
. "${{ 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
run: |
& "${{ env.INSTALL_DIR }}/setupvars.ps1"
. "${{ 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
run: |
& "${{ env.INSTALL_DIR }}/setupvars.ps1"
. "${{ 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
run: |
& "${{ env.INSTALL_DIR }}/setupvars.ps1"
. "${{ 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
run: |
# Skip ticket: 126320
& "${{ env.INSTALL_DIR }}/setupvars.ps1"
. "${{ 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
run: |
& "${{ env.INSTALL_DIR }}/setupvars.ps1"
. "${{ 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
run: |
& "${{ env.INSTALL_DIR }}/setupvars.ps1"
. "${{ 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
run: |
& "${{ env.INSTALL_DIR }}/setupvars.ps1"
. "${{ 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
run: |
& "${{ env.INSTALL_DIR }}/setupvars.ps1"
. "${{ 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
run: |
& "${{ env.INSTALL_DIR }}/setupvars.ps1"
. "${{ 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
run: |
& "${{ env.INSTALL_DIR }}/setupvars.ps1"
. "${{ 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
run: |
& "${{ env.INSTALL_DIR }}/setupvars.ps1"
. "${{ 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
run: |
& "${{ env.INSTALL_DIR }}/setupvars.ps1"
. "${{ 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
run: |
& "${{ env.INSTALL_DIR }}/setupvars.ps1"
. "${{ 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
run: |
& "${{ env.INSTALL_DIR }}/setupvars.ps1"
. "${{ 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
run: |
& "${{ env.INSTALL_DIR }}/setupvars.ps1"
. "${{ 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
run: |
& "${{ env.INSTALL_DIR }}/setupvars.ps1"
. "${{ 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
run: |
& "${{ env.INSTALL_DIR }}/setupvars.ps1"
. "${{ 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
run: |
& "${{ env.INSTALL_DIR }}/setupvars.ps1"
. "${{ 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
run: |
& "${{ env.INSTALL_DIR }}/setupvars.ps1"
. "${{ 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
Expand Down Expand Up @@ -830,7 +843,7 @@ jobs:
- name: Intel CPU plugin func tests (parallel)
run: |
& "${{ env.INSTALL_DIR }}/setupvars.ps1"
. "${{ 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

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/windows_conditional_compilation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,7 @@ jobs:
- name: Build C samples - OpenVINO install tree
run: |
& ${{ env.INSTALL_DIR }}/samples/c/build_samples_msvc.bat -i ${{ env.INSTALL_DIR }} -b ${{ env.BUILD_DIR }}/c_samples
& ${{ env.INSTALL_DIR }}/samples/c/build_samples.ps1 -i ${{ env.INSTALL_DIR }} -b ${{ env.BUILD_DIR }}/c_samples
- name: Ctest - OpenVINO unit tests
shell: cmd
Expand Down
3 changes: 2 additions & 1 deletion samples/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ if(UNIX)
COMPONENT ${OV_CPACK_COMP_CPP_SAMPLES}
${OV_CPACK_COMP_CPP_SAMPLES_EXCLUDE_ALL}
PATTERN *.bat EXCLUDE
PATTERN *.ps1 EXCLUDE
PATTERN *.sh EXCLUDE
PATTERN .clang-format EXCLUDE)

Expand Down Expand Up @@ -52,7 +53,7 @@ if(UNIX)
COMPONENT ${OV_CPACK_COMP_C_SAMPLES}
${OV_CPACK_COMP_C_SAMPLES_EXCLUDE_ALL})
elseif(WIN32)
install(PROGRAMS cpp/build_samples_msvc.bat
install(PROGRAMS cpp/build_samples_msvc.bat cpp/build_samples.ps1
DESTINATION ${OV_CPACK_SAMPLESDIR}/c
COMPONENT ${OV_CPACK_COMP_C_SAMPLES}
${OV_CPACK_COMP_C_SAMPLES_EXCLUDE_ALL})
Expand Down
66 changes: 66 additions & 0 deletions samples/cpp/build_samples.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# Copyright (C) 2018-2024 Intel Corporation
# SPDX-License-Identifier: Apache-2.0

# Arguments parsing
param (
[Alias("b")]
[string]$BuildDirectory = "",

[Alias("i")]
[string]$InstallDirectory = "",

[Alias("h")]
[switch]$Help
)

$ErrorActionPreference = "Stop"

$SourceDirectory = Split-Path $MyInvocation.MyCommand.Path
$SamplesType = (Get-Item $SourceDirectory).Name
$DefaultBuildDirectory = "$Env:USERPROFILE/Documents/Intel/OpenVINO/openvino_${SamplesType}_samples_build"

if ($Help) {
Write-Host "
Build OpenVINO Runtime samples
Options:
-h/-Help Print the help message and exit
-b/-BuildDirectory Specify the samples build directory. Default is '$DefaultBuildDirectory'
-i/-InstallDirectory Specify the samples install directory
"
exit 0
}

$BuildDirectory = if ($BuildDirectory) {$BuildDirectory} else {$DefaultBuildDirectory}

if (-not $Env:INTEL_OPENVINO_DIR) {
$SetupVars = Join-Path $SourceDirectory "../../setupvars.ps1"
if (Test-Path $SetupVars) {
. $SetupVars
}
else
{
Write-Host "
Failed to set the environment variables automatically. To fix, run the following command:
<INTEL_OPENVINO_DIR>/setupvars.ps1
where <INTEL_OPENVINO_DIR> is the OpenVINO installation directory
"
exit 1
}
}

Set-Location -Path $SourceDirectory
New-Item -Path $BuildDirectory -ItemType Directory -Force
Set-Location $BuildDirectory
cmake -DCMAKE_DISABLE_FIND_PACKAGE_PkgConfig=ON $SourceDirectory

Write-Host "Building command: cmake --build . --config Release --parallel"
cmake --build . --config Release --parallel

if ($InstallDirectory) {
cmake -DCMAKE_INSTALL_PREFIX="$InstallDirectory" -DCOMPONENT=samples_bin -P "$BuildDirectory/cmake_install.cmake"
Write-Host "Samples are built and installed into $InstallDirectory"
}
else
{
Write-Host "Samples are built in $BuildDirectory"
}

0 comments on commit 312ffb1

Please sign in to comment.