forked from openvinotoolkit/openvino
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[CI] [GHA] Introduce GHA Windows Conditional Compilation Pipeline (op…
…envinotoolkit#19343) * introduce win cc pipeline * disable some triggers * do not install unnecessary dependencies * clone models * rm triggers --------- Co-authored-by: Mikhail Ryzhov <[email protected]>
- Loading branch information
Showing
1 changed file
with
170 additions
and
0 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,170 @@ | ||
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 |