* add platform-agnostic setup python action
* use specific version
* rm debug message, checkout action
* correct path
* add checkout of the action, correct paths
* correct path; enclose into brackets
* transfer linux pipelines to local setup-python action
* transfer pipelines
* use newer version
* account for fedora, add missing cache path
* correct name
* use 3.9 for fedora
* rm python install from fedora
* mv fetch and setup together, set pip_cache_dir
* correct order
* rm triggers
* add missing pythonpaths
* correct path
* add one more pythonpath
* add paths to ov package libs
* Revert "add paths to ov package libs"
This reverts commit a775881f3e.
344 lines
12 KiB
YAML
344 lines
12 KiB
YAML
name: Windows Conditional Compilation (VS 2022, Python 3.11)
|
|
on:
|
|
workflow_dispatch:
|
|
schedule:
|
|
# run daily at 00:00
|
|
- cron: '0 0 * * *'
|
|
# 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
|
|
|
|
concurrency:
|
|
# github.ref is not unique in post-commit
|
|
group: ${{ github.event_name == 'push' && github.run_id || github.ref }}-windows-cc
|
|
cancel-in-progress: true
|
|
|
|
env:
|
|
PYTHON_VERSION: '3.11'
|
|
|
|
jobs:
|
|
Build:
|
|
timeout-minutes: 180
|
|
defaults:
|
|
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"
|
|
INSTALL_DIR: "${{ github.workspace }}\\openvino_install"
|
|
INSTALL_TEST_DIR: "${{ github.workspace }}\\tests_install"
|
|
BUILD_DIR: "${{ github.workspace }}\\openvino_build"
|
|
MODELS_PATH: "${{ github.workspace }}\\testdata"
|
|
SELECTIVE_BUILD_STAT_DIR: "${{ github.workspace }}\\selective_build_stat"
|
|
steps:
|
|
- name: Clone OpenVINO
|
|
uses: actions/checkout@v4
|
|
with:
|
|
path: 'openvino'
|
|
submodules: 'true'
|
|
|
|
- name: Clone test models
|
|
uses: actions/checkout@v4
|
|
with:
|
|
repository: 'openvinotoolkit/testdata'
|
|
path: 'testdata'
|
|
lfs: 'true'
|
|
ref: 'master'
|
|
|
|
#
|
|
# Print system info
|
|
#
|
|
|
|
- name: System info
|
|
uses: ./openvino/.github/actions/system_info
|
|
|
|
#
|
|
# Dependencies
|
|
#
|
|
|
|
- name: Setup Python ${{ env.PYTHON_VERSION }}
|
|
uses: ./openvino/.github/actions/setup_python
|
|
with:
|
|
version: ${{ env.PYTHON_VERSION }}
|
|
should-setup-pip-paths: 'false'
|
|
self-hosted-runner: 'false'
|
|
|
|
- name: Install build dependencies
|
|
run: choco install --no-progress ninja
|
|
|
|
- name: Install python dependencies
|
|
run: |
|
|
# 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 TensorFlow Lite frontend unit tests
|
|
python3 -m pip install -r ${{ env.OPENVINO_REPO }}/src/frontends/tensorflow_lite/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: Configure Developer Command Prompt for Microsoft Visual C++
|
|
uses: ilammy/msvc-dev-cmd@v1
|
|
|
|
- name: Setup sccache
|
|
uses: hendrikmuhs/ccache-action@v1.2
|
|
with:
|
|
variant: sccache
|
|
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' }}
|
|
key: ${{ github.job }}-${{ runner.os }}-itt
|
|
restore-keys: |
|
|
${{ github.job }}-${{ runner.os }}-itt
|
|
|
|
- name: CMake configure - CC COLLECT
|
|
run: |
|
|
cmake -G "${{ env.CMAKE_GENERATOR }}" `
|
|
-DBUILD_SHARED_LIBS=OFF `
|
|
-DENABLE_TESTS=ON `
|
|
-DENABLE_CPPLINT=OFF `
|
|
-DENABLE_NCC_STYLE=OFF `
|
|
-DENABLE_INTEL_GNA=OFF `
|
|
-DCMAKE_COMPILE_WARNING_AS_ERROR=ON `
|
|
-DENABLE_PROFILING_ITT=ON `
|
|
-DSELECTIVE_BUILD=COLLECT `
|
|
-DCMAKE_DISABLE_FIND_PACKAGE_PkgConfig=ON `
|
|
-S ${{ env.OPENVINO_REPO }} `
|
|
-B ${{ env.BUILD_DIR }}
|
|
|
|
- name: Cmake build - CC COLLECT
|
|
run: |
|
|
cmake --build ${{ env.BUILD_DIR }} --parallel --config ${{ env.CMAKE_BUILD_TYPE }}
|
|
cmake --build ${{ env.BUILD_DIR }} --parallel --config ${{ env.CMAKE_BUILD_TYPE }} --target sea_itt_lib
|
|
|
|
- name: Cmake install - OpenVINO
|
|
run: cmake -DCMAKE_INSTALL_PREFIX=${{ env.INSTALL_DIR }} -P ${{ env.BUILD_DIR }}/cmake_install.cmake
|
|
|
|
- name: Build C++ samples - OpenVINO build tree
|
|
run: |
|
|
cmake -G "${{ env.CMAKE_GENERATOR }}" -DOpenVINO_DIR=${{ env.BUILD_DIR }} -S ${{ env.INSTALL_DIR }}/samples/cpp -B ${{ env.BUILD_DIR }}/cpp_samples
|
|
cmake --build ${{ env.BUILD_DIR }}/cpp_samples --parallel --config ${{ env.CMAKE_BUILD_TYPE }} --target hello_query_device
|
|
|
|
- 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
|
|
|
|
- name: Ctest - OpenVINO unit tests
|
|
shell: cmd
|
|
run: |
|
|
set path=%path%;${{ env.OPENVINO_REPO }}\temp\tbb\bin
|
|
ctest -C ${{ env.CMAKE_BUILD_TYPE }} --test-dir ${{ env.BUILD_DIR }} -V -L UNIT
|
|
|
|
- name: Perform code tracing via ITT collector
|
|
shell: cmd
|
|
run: |
|
|
set path=%path%;${{ env.OPENVINO_REPO }}\temp\tbb\bin
|
|
|
|
python3 ${{ env.OPENVINO_REPO }}\thirdparty\itt_collector\runtool\sea_runtool.py ^
|
|
--bindir ${{ env.OPENVINO_REPO }}\bin\intel64\${{ env.CMAKE_BUILD_TYPE }} ^
|
|
-o ${{ env.SELECTIVE_BUILD_STAT_DIR }}\itt_stat ! ${{ env.OPENVINO_REPO }}\bin\intel64\${{ env.CMAKE_BUILD_TYPE }}\benchmark_app.exe ^
|
|
-niter 1 ^
|
|
-nireq 1 ^
|
|
-m ${{ env.MODELS_PATH }}\models\test_model\test_model_fp32.xml ^
|
|
-d CPU
|
|
|
|
- name: List bin files
|
|
shell: cmd
|
|
run: dir ${{ env.OPENVINO_REPO }}\bin\ /s
|
|
|
|
- name: List install files
|
|
shell: cmd
|
|
run: dir ${{ env.INSTALL_DIR }} /s
|
|
|
|
- name: Pack Artifacts
|
|
run: |
|
|
$file=Get-ChildItem -Path "${{ env.SELECTIVE_BUILD_STAT_DIR }}"
|
|
$compress = @{
|
|
Path = $file
|
|
CompressionLevel = "Optimal"
|
|
DestinationPath = "${{ env.BUILD_DIR }}/openvino_selective_build_stat.zip"
|
|
}
|
|
Compress-Archive @compress
|
|
|
|
$compress = @{
|
|
Path = "${{ env.OPENVINO_REPO }}/bin/intel64/${{ env.CMAKE_BUILD_TYPE }}/ov_cpu_func_tests.exe", "${{ env.OPENVINO_REPO }}/src/tests/test_utils/functional_test_utils/layer_tests_summary", "${{ env.INSTALL_DIR }}/runtime/3rdparty/tbb"
|
|
CompressionLevel = "Optimal"
|
|
DestinationPath = "${{ env.BUILD_DIR }}/openvino_tests.zip"
|
|
}
|
|
Compress-Archive @compress
|
|
|
|
- name: Upload selective build statistics package
|
|
if: ${{ always() }}
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: openvino_selective_build_stat
|
|
path: ${{ env.BUILD_DIR }}/openvino_selective_build_stat.zip
|
|
if-no-files-found: 'error'
|
|
|
|
- name: Upload OpenVINO tests package
|
|
if: ${{ always() }}
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: openvino_tests
|
|
path: ${{ env.BUILD_DIR }}/openvino_tests.zip
|
|
if-no-files-found: 'error'
|
|
|
|
CC_Build:
|
|
name: Conditional Compilation
|
|
needs: Build
|
|
defaults:
|
|
run:
|
|
shell: pwsh
|
|
runs-on: windows-latest-8-cores
|
|
env:
|
|
CMAKE_BUILD_TYPE: 'Release'
|
|
CMAKE_CXX_COMPILER_LAUNCHER: sccache
|
|
CMAKE_C_COMPILER_LAUNCHER: sccache
|
|
OPENVINO_REPO: "${{ github.workspace }}\\openvino"
|
|
BUILD_DIR: "${{ github.workspace }}\\openvino_build"
|
|
MODELS_PATH: "${{ github.workspace }}\\testdata"
|
|
SELECTIVE_BUILD_STAT_DIR: "${{ github.workspace }}\\selective_build_stat"
|
|
steps:
|
|
- name: Clone OpenVINO
|
|
uses: actions/checkout@v4
|
|
with:
|
|
path: 'openvino'
|
|
submodules: 'true'
|
|
|
|
- name: Clone test models
|
|
uses: actions/checkout@v4
|
|
with:
|
|
repository: 'openvinotoolkit/testdata'
|
|
path: 'testdata'
|
|
lfs: 'true'
|
|
ref: 'master'
|
|
|
|
- name: Download selective build statistics package
|
|
uses: actions/download-artifact@v3
|
|
with:
|
|
name: openvino_selective_build_stat
|
|
path: ${{ env.SELECTIVE_BUILD_STAT_DIR }}
|
|
|
|
- name: Extract selective build statistics package
|
|
run: Expand-Archive ${{ env.SELECTIVE_BUILD_STAT_DIR }}/openvino_selective_build_stat.zip -DestinationPath "${{ env.SELECTIVE_BUILD_STAT_DIR }}"
|
|
|
|
- name: CMake configure - CC ON
|
|
run: |
|
|
cmake `
|
|
-DBUILD_SHARED_LIBS=OFF `
|
|
-DENABLE_CPPLINT=OFF `
|
|
-DSELECTIVE_BUILD=ON `
|
|
-DENABLE_TEMPLATE=OFF `
|
|
-DENABLE_INTEL_GPU=OFF `
|
|
-DENABLE_INTEL_GNA=OFF `
|
|
-DENABLE_OV_TF_FRONTEND=OFF `
|
|
-DENABLE_OV_TF_LITE_FRONTEND=OFF `
|
|
-DENABLE_OV_PADDLE_FRONTEND=OFF `
|
|
-DENABLE_OV_PYTORCH_FRONTEND=OFF `
|
|
-DENABLE_OV_ONNX_FRONTEND=OFF `
|
|
-DSELECTIVE_BUILD_STAT=${{ env.SELECTIVE_BUILD_STAT_DIR }}\*.csv `
|
|
-S ${{ env.OPENVINO_REPO }} `
|
|
-B ${{ env.BUILD_DIR }}
|
|
|
|
- name: Cmake build - CC ON
|
|
run: cmake --build ${{ env.BUILD_DIR }} --parallel --config ${{ env.CMAKE_BUILD_TYPE }} --target benchmark_app
|
|
|
|
- name: List bin files
|
|
shell: cmd
|
|
run: dir ${{ env.OPENVINO_REPO }}\bin\ /s
|
|
|
|
- name: Run with CC-ed runtime
|
|
shell: cmd
|
|
run: |
|
|
set path=%path%;${{ env.OPENVINO_REPO }}\temp\tbb\bin
|
|
${{ env.OPENVINO_REPO }}\bin\intel64\${{ env.CMAKE_BUILD_TYPE }}\benchmark_app.exe -niter 1 -nireq 1 -m ${{ env.MODELS_PATH }}\models\test_model\test_model_fp32.xml -d CPU
|
|
|
|
CPU_Functional_Tests:
|
|
name: CPU functional tests
|
|
needs: Build
|
|
defaults:
|
|
run:
|
|
shell: pwsh
|
|
runs-on: windows-latest-8-cores
|
|
env:
|
|
INSTALL_TEST_DIR: "${{ github.workspace }}\\tests_install"
|
|
PARALLEL_TEST_SCRIPT: "${{ github.workspace }}\\tests_install\\layer_tests_summary\\run_parallel.py"
|
|
PARALLEL_TEST_CACHE: "${{ github.workspace }}\\tests_install\\test_cache.lst"
|
|
|
|
steps:
|
|
- name: Download OpenVINO tests package
|
|
uses: actions/download-artifact@v3
|
|
with:
|
|
name: openvino_tests
|
|
path: ${{ env.INSTALL_TEST_DIR }}
|
|
|
|
- name: Extract OpenVINO tests package
|
|
run: Expand-Archive ${{ env.INSTALL_TEST_DIR }}/openvino_tests.zip -DestinationPath "${{ env.INSTALL_TEST_DIR }}"
|
|
|
|
- name: Setup Python ${{ env.PYTHON_VERSION }}
|
|
uses: ./openvino/.github/actions/setup_python
|
|
with:
|
|
version: ${{ env.PYTHON_VERSION }}
|
|
should-setup-pip-paths: 'false'
|
|
self-hosted-runner: 'false'
|
|
|
|
- name: Install python dependencies for run_parallel.py
|
|
run: python3 -m pip install -r ${{ env.INSTALL_TEST_DIR }}/layer_tests_summary/requirements.txt
|
|
|
|
# Windows pipeline is in nightly mode, uncomment once there is a consistent cache creation
|
|
# - name: Restore tests execution time
|
|
# uses: actions/cache/restore@v3
|
|
# with:
|
|
# path: ${{ env.PARALLEL_TEST_CACHE }}
|
|
# key: ${{ runner.os }}-tests-functional-cpu-stamp-${{ github.sha }}
|
|
# restore-keys: |
|
|
# ${{ runner.os }}-tests-functional-cpu-stamp
|
|
|
|
- name: Intel CPU plugin func tests (parallel)
|
|
shell: cmd
|
|
run: |
|
|
set path=%path%;${{ env.INSTALL_TEST_DIR }}\tbb\bin;${{ env.INSTALL_TEST_DIR }}\tbb
|
|
python3 ${{ env.PARALLEL_TEST_SCRIPT }} -e ${{ env.INSTALL_TEST_DIR }}\ov_cpu_func_tests.exe -w ${{ env.INSTALL_TEST_DIR }} -s suite -rf 0 -- --gtest_print_time=1 --gtest_filter=*smoke*
|
|
timeout-minutes: 45
|
|
|
|
- name: Upload Test Results
|
|
uses: actions/upload-artifact@v3
|
|
if: ${{ !cancelled() }}
|
|
with:
|
|
name: test-results-functional-cpu
|
|
path: |
|
|
${{ env.INSTALL_TEST_DIR }}/TEST*.xml
|
|
${{ env.INSTALL_TEST_DIR }}/logs/failed/*.log
|
|
${{ env.INSTALL_TEST_DIR }}/logs/crashed/*.log
|
|
${{ env.INSTALL_TEST_DIR }}/logs/hanged/*.log
|
|
${{ env.INSTALL_TEST_DIR }}/logs/interapted/*.log
|
|
${{ env.INSTALL_TEST_DIR }}/logs/disabled_tests.log
|
|
if-no-files-found: 'error'
|