Windows Conditional Compilation (VS 2022, Python 3.11) #1
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: Tests on 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: | |
group: ${{ github.head_ref || github.run_id }}-windows-cc | |
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_pkg" | |
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" | |
BUILD_DIR_2: "${{ github.workspace }}\\build_s" | |
DATA_PATH: "${{ github.workspace }}\\testdata" | |
MODELS_PATH: "${{ github.workspace }}\\testdata" | |
OV_TEMP: "${{ github.workspace }}\\openvino_temp" | |
BUILD_TYPE: "Release" | |
PYTHON_STATIC_ARGS: -m "not dynamic_library and not template_plugin" | |
VCVARSPATH: "C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise\\VC\\Auxiliary\\Build\\vcvarsall.bat" | |
jobs: | |
Build: | |
# TODO: remove. Temporary measure to prevent the workflow from scheduling on forks. | |
if: ${{ github.repository_owner == 'openvinotoolkit' }} | |
defaults: | |
run: | |
shell: pwsh | |
runs-on: windows-latest-8-cores | |
steps: | |
- name: Clone OpenVINO | |
uses: actions/checkout@v3 | |
with: | |
path: 'openvino' | |
submodules: 'recursive' | |
- name: Clone testdata for sample test | |
uses: actions/checkout@v4 | |
with: | |
repository: 'openvinotoolkit/testdata' | |
path: 'testdata' | |
submodules: 'recursive' | |
lfs: 'true' | |
# | |
# Dependencies | |
# | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: '3.11' | |
- name: Install build dependencies | |
run: | | |
choco install --no-progress ninja | |
# | |
# Build | |
# | |
- name: Get number of CPU cores | |
uses: SimenB/github-actions-cpu-cores@v1 | |
id: cpu-cores | |
- uses: ilammy/msvc-dev-cmd@v1 | |
- name: Setup sccache | |
uses: hendrikmuhs/[email protected] | |
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 }}-windows-cc | |
restore-keys: | | |
${{ github.job }}-windows-cc | |
- name: CMake CC COLLECT | |
run: | | |
& "${{ env.VCVARSPATH }}" x64 && cmake -G Ninja ` | |
-DENABLE_CPPLINT=OFF ` | |
-DENABLE_GAPI_PREPROCESSING=OFF ` | |
-DENABLE_PLUGINS_XML=ON ` | |
-DCMAKE_COMPILE_WARNING_AS_ERROR=OFF ` | |
-DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} ` | |
-DENABLE_PROFILING_ITT=ON ` | |
-DSELECTIVE_BUILD=COLLECT ` | |
-S ${{ env.OPENVINO_REPO }} ` | |
-B ${{ env.BUILD_DIR }} | |
- name: Build CC COLLECT | |
run: | | |
& "${{ env.VCVARSPATH }}" x64 && cmake --build ${{ env.BUILD_DIR }} --parallel ${{ steps.cpu-cores.outputs.count }} --config ${{ env.BUILD_TYPE }} ` | |
--target openvino_intel_cpu_plugin openvino_ir_frontend benchmark_app sea_itt_lib | |
- name: List bin files | |
shell: cmd | |
run: dir ${{ env.OPENVINO_REPO }}\bin\ /s | |
- name: Code usage analysis | |
shell: cmd | |
working-directory: ${{ env.OPENVINO_REPO }} | |
run: | | |
set path=%path%;${{ env.OPENVINO_REPO }}\temp\tbb\bin | |
call "${{ env.VCVARSPATH }}" && python thirdparty\itt_collector\runtool\sea_runtool.py --bindir ${{ env.OPENVINO_REPO }}\bin\intel64\${{ env.BUILD_TYPE }} -o ${{ env.BUILD_DIR }}\itt_stat ! ${{ env.OPENVINO_REPO }}\bin\intel64\${{ env.BUILD_TYPE }}\benchmark_app.exe -niter 1 -nireq 1 -m ${{ env.MODELS_PATH }}\models\test_model\test_model_fp32.xml -d CPU | |
- name: List csv files | |
shell: cmd | |
run: dir ${{ env.BUILD_DIR }}\*.csv /s /p | |
- name: CMake CC ON | |
run: | | |
& "${{ env.VCVARSPATH }}" x64 && cmake -G "Visual Studio 17 2022" ` | |
-DVERBOSE_BUILD=ON ` | |
-DENABLE_CPPLINT=OFF ` | |
-DENABLE_GAPI_PREPROCESSING=OFF ` | |
-DENABLE_PROFILING_ITT=OFF ` | |
-DSELECTIVE_BUILD=ON ` | |
-DCMAKE_COMPILE_WARNING_AS_ERROR=OFF ` | |
-DSELECTIVE_BUILD_STAT=${{ env.BUILD_DIR }}\*.csv ` | |
-S ${{ env.OPENVINO_REPO }} ` | |
-B ${{ env.BUILD_DIR_2 }} | |
- name: Build CC ON | |
run: | | |
& "${{ env.VCVARSPATH }}" x64 && cmake --build ${{ env.BUILD_DIR_2 }} --parallel ${{ steps.cpu-cores.outputs.count }} --config ${{ env.BUILD_TYPE }} ` | |
--target openvino_intel_cpu_plugin openvino_ir_frontend benchmark_app | |
- name: List bin files ON | |
shell: cmd | |
run: dir ${{ env.OPENVINO_REPO }}\bin\ /s | |
- name: Check conditional_compilation_gen.h header | |
shell: cmd | |
run: type ${{ env.BUILD_DIR_2 }}\src\common\conditional_compilation\conditional_compilation_gen.h | |
- name: Use OpenVINO after CC | |
shell: cmd | |
run: | | |
set path=%path%;${{ env.OPENVINO_REPO }}\temp\tbb\bin | |
${{ env.OPENVINO_REPO }}\bin\intel64\${{ env.BUILD_TYPE }}\benchmark_app.exe -niter 1 -nireq 1 -m ${{ env.MODELS_PATH }}\models\test_model\test_model_fp32.xml -d CPU |