[GHA] Windows pytest optimizations (#21650)

* parallel runs

* enabled pip cache

* pip cache fix
This commit is contained in:
Mikhail Ryzhov 2023-12-14 17:14:51 +01:00 committed by GitHub
parent 0a21205ad4
commit 59e9f50ec6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -12,6 +12,7 @@ concurrency:
cancel-in-progress: true cancel-in-progress: true
env: env:
PIP_CACHE_PATH: /mount/caches/pip/win
PYTHON_VERSION: '3.11' PYTHON_VERSION: '3.11'
jobs: jobs:
@ -88,8 +89,10 @@ jobs:
uses: ./openvino/.github/actions/setup_python uses: ./openvino/.github/actions/setup_python
with: with:
version: ${{ env.PYTHON_VERSION }} version: ${{ env.PYTHON_VERSION }}
should-setup-pip-paths: 'false' pip-cache-path: ${{ env.PIP_CACHE_PATH }}
self-hosted-runner: 'false' should-setup-pip-paths: 'true'
self-hosted-runner: 'true'
show-cache-info: 'true'
- name: Install python dependencies - name: Install python dependencies
run: | run: |
@ -249,7 +252,7 @@ jobs:
with: with:
version: ${{ env.PYTHON_VERSION }} version: ${{ env.PYTHON_VERSION }}
should-setup-pip-paths: 'false' should-setup-pip-paths: 'false'
self-hosted-runner: 'false' self-hosted-runner: 'true'
- name: Build cpp samples - name: Build cpp samples
run: | run: |
@ -287,7 +290,7 @@ jobs:
defaults: defaults:
run: run:
shell: pwsh shell: pwsh
runs-on: aks-win-4-cores-8gb runs-on: aks-win-8-cores-16gb
env: env:
OPENVINO_REPO: "${{ github.workspace }}\\openvino" OPENVINO_REPO: "${{ github.workspace }}\\openvino"
OPENVINO_CONTRIB_REPO: "${{ github.workspace }}\\openvino_contrib" OPENVINO_CONTRIB_REPO: "${{ github.workspace }}\\openvino_contrib"
@ -330,8 +333,9 @@ jobs:
uses: ./openvino/.github/actions/setup_python uses: ./openvino/.github/actions/setup_python
with: with:
version: ${{ env.PYTHON_VERSION }} version: ${{ env.PYTHON_VERSION }}
pip-cache-path: ${{ env.PIP_CACHE_PATH }}
should-setup-pip-paths: 'false' should-setup-pip-paths: 'false'
self-hosted-runner: 'false' self-hosted-runner: 'true'
- name: Install OpenVINO Python wheels - name: Install OpenVINO Python wheels
run: | run: |
@ -345,6 +349,9 @@ jobs:
- name: Install Python API tests dependencies - name: Install Python API tests dependencies
run: | run: |
# To enable pytest parallel features
python3 -m pip install pytest-xdist[psutil]
# For torchvision to OpenVINO preprocessing converter # For torchvision to OpenVINO preprocessing converter
python3 -m pip install -r ${{ env.INSTALL_TEST_DIR }}/python/preprocess/torchvision/requirements.txt python3 -m pip install -r ${{ env.INSTALL_TEST_DIR }}/python/preprocess/torchvision/requirements.txt
@ -370,13 +377,17 @@ jobs:
run: | run: |
python3 -m pytest -s ${{ env.INSTALL_TEST_DIR }}/mo/unit_tests --ignore=${{ env.INSTALL_TEST_DIR }}/mo/unit_tests/mo/front/mxnet --junitxml=${{ env.INSTALL_TEST_DIR }}/TEST-ModelOptimizer.xml python3 -m pytest -s ${{ env.INSTALL_TEST_DIR }}/mo/unit_tests --ignore=${{ env.INSTALL_TEST_DIR }}/mo/unit_tests/mo/front/mxnet --junitxml=${{ env.INSTALL_TEST_DIR }}/TEST-ModelOptimizer.xml
- name: Install Python Layer tests dependencies
run: |
# layer test requirements
python3 -m pip install -r ${{ env.LAYER_TESTS_INSTALL_DIR }}/requirements.txt
# Ticket - 115085 # Ticket - 115085
- name: PyTorch Layer Tests - name: PyTorch Layer Tests
if: ${{ 'false' }} if: ${{ 'false' }}
shell: cmd shell: cmd
run: | run: |
python3 -m pip install -r ${{ env.LAYER_TESTS_INSTALL_DIR }}/requirements.txt python3 -m pytest ${{ env.LAYER_TESTS_INSTALL_DIR }}/pytorch_tests -n logical -m precommit --junitxml=${{ env.INSTALL_TEST_DIR }}/TEST-pytorch.xml
python3 -m pytest ${{ env.LAYER_TESTS_INSTALL_DIR }}/pytorch_tests -m precommit --junitxml=${{ env.INSTALL_TEST_DIR }}/TEST-pytorch.xml
env: env:
TEST_DEVICE: CPU TEST_DEVICE: CPU
@ -384,11 +395,9 @@ jobs:
if: fromJSON(needs.smart_ci.outputs.affected_components).ONNX_FE.test if: fromJSON(needs.smart_ci.outputs.affected_components).ONNX_FE.test
shell: cmd shell: cmd
run: | run: |
python3 -m pip install -r ${{ env.LAYER_TESTS_INSTALL_DIR }}/requirements.txt
:: requires 'unit_tests' from 'tools/mo' :: requires 'unit_tests' from 'tools/mo'
set PYTHONPATH=${{ env.INSTALL_TEST_DIR }}\mo;%PYTHONPATH% set PYTHONPATH=${{ env.INSTALL_TEST_DIR }}\mo;%PYTHONPATH%
python3 -m pytest ${{ env.LAYER_TESTS_INSTALL_DIR }}/onnx_tests -m "not launch_only_if_manually_specified and precommit" --junitxml=${INSTALL_TEST_DIR}/TEST-onnx.xml python3 -m pytest ${{ env.LAYER_TESTS_INSTALL_DIR }}/onnx_tests -n logical -m "not launch_only_if_manually_specified and precommit" --junitxml=${INSTALL_TEST_DIR}/TEST-onnx.xml
env: env:
TEST_DEVICE: CPU TEST_DEVICE: CPU
TEST_PRECISION: FP16 TEST_PRECISION: FP16
@ -397,8 +406,6 @@ jobs:
if: fromJSON(needs.smart_ci.outputs.affected_components).TF_FE.test if: fromJSON(needs.smart_ci.outputs.affected_components).TF_FE.test
shell: cmd shell: cmd
run: | run: |
python3 -m pip install -r ${{ env.LAYER_TESTS_INSTALL_DIR }}/requirements.txt
:: requires 'unit_tests' from 'tools/mo' :: requires 'unit_tests' from 'tools/mo'
set PYTHONPATH=${{ env.INSTALL_TEST_DIR }}\mo;%PYTHONPATH% set PYTHONPATH=${{ env.INSTALL_TEST_DIR }}\mo;%PYTHONPATH%
python3 -m pytest ${{ env.LAYER_TESTS_INSTALL_DIR }}/tensorflow_tests/ --use_new_frontend -m precommit_tf_fe --junitxml=${{ env.INSTALL_TEST_DIR }}/TEST-tf_fe.xml python3 -m pytest ${{ env.LAYER_TESTS_INSTALL_DIR }}/tensorflow_tests/ --use_new_frontend -m precommit_tf_fe --junitxml=${{ env.INSTALL_TEST_DIR }}/TEST-tf_fe.xml
@ -410,8 +417,6 @@ jobs:
if: fromJSON(needs.smart_ci.outputs.affected_components).TF_FE.test if: fromJSON(needs.smart_ci.outputs.affected_components).TF_FE.test
shell: cmd shell: cmd
run: | run: |
python3 -m pip install -r ${{ env.LAYER_TESTS_INSTALL_DIR }}/requirements.txt
:: requires 'unit_tests' from 'tools/mo' :: requires 'unit_tests' from 'tools/mo'
set PYTHONPATH=${{ env.INSTALL_TEST_DIR }}\mo;%PYTHONPATH% set PYTHONPATH=${{ env.INSTALL_TEST_DIR }}\mo;%PYTHONPATH%
@ -423,14 +428,12 @@ jobs:
if: fromJSON(needs.smart_ci.outputs.affected_components).TF_FE.test if: fromJSON(needs.smart_ci.outputs.affected_components).TF_FE.test
shell: cmd shell: cmd
run: | run: |
python3 -m pip install -r ${{ env.LAYER_TESTS_INSTALL_DIR }}/requirements.txt
python3 -m pytest ${{ env.LAYER_TESTS_INSTALL_DIR }}/tensorflow_tests/test_tf_Roll.py --ir_version=10 --junitxml=${{ env.INSTALL_TEST_DIR }}/TEST-tf_Roll.xml python3 -m pytest ${{ env.LAYER_TESTS_INSTALL_DIR }}/tensorflow_tests/test_tf_Roll.py --ir_version=10 --junitxml=${{ env.INSTALL_TEST_DIR }}/TEST-tf_Roll.xml
- name: TensorFlow 2 Layer Tests - Legacy FE - name: TensorFlow 2 Layer Tests - Legacy FE
if: fromJSON(needs.smart_ci.outputs.affected_components).TF_FE.test if: fromJSON(needs.smart_ci.outputs.affected_components).TF_FE.test
shell: cmd shell: cmd
run: | run: |
python3 -m pip install -r ${{ env.LAYER_TESTS_INSTALL_DIR }}/requirements.txt
python3 -m pytest ${{ env.LAYER_TESTS_INSTALL_DIR }}/tensorflow2_keras_tests/test_tf2_keras_activation.py --ir_version=11 --junitxml=${{ env.INSTALL_TEST_DIR }}/TEST-tf2_Activation.xml -k "sigmoid" python3 -m pytest ${{ env.LAYER_TESTS_INSTALL_DIR }}/tensorflow2_keras_tests/test_tf2_keras_activation.py --ir_version=11 --junitxml=${{ env.INSTALL_TEST_DIR }}/TEST-tf2_Activation.xml -k "sigmoid"
env: env:
TEST_DEVICE: CPU TEST_DEVICE: CPU
@ -440,7 +443,6 @@ jobs:
if: fromJSON(needs.smart_ci.outputs.affected_components).TFL_FE.test if: fromJSON(needs.smart_ci.outputs.affected_components).TFL_FE.test
shell: cmd shell: cmd
run: | run: |
python3 -m pip install -r ${{ env.LAYER_TESTS_INSTALL_DIR }}/requirements.txt
python3 -m pytest ${{ env.LAYER_TESTS_INSTALL_DIR }}/tensorflow_lite_tests/ --junitxml=${{ env.INSTALL_TEST_DIR }}/TEST-tfl_fe.xml python3 -m pytest ${{ env.LAYER_TESTS_INSTALL_DIR }}/tensorflow_lite_tests/ --junitxml=${{ env.INSTALL_TEST_DIR }}/TEST-tfl_fe.xml
env: env:
TEST_DEVICE: CPU TEST_DEVICE: CPU
@ -460,8 +462,6 @@ jobs:
if: fromJSON(needs.smart_ci.outputs.affected_components).MO.test if: fromJSON(needs.smart_ci.outputs.affected_components).MO.test
shell: cmd shell: cmd
run: | run: |
python3 -m pip install -r ${{ env.LAYER_TESTS_INSTALL_DIR }}/requirements.txt
:: Used for 'test_utils' installed in '<test_package>\python\openvino\test_utils' :: Used for 'test_utils' installed in '<test_package>\python\openvino\test_utils'
set PYTHONPATH=${{ env.INSTALL_TEST_DIR }}\python\openvino\test_utils;${{ env.INSTALL_TEST_DIR }}\python;%PYTHONPATH% set PYTHONPATH=${{ env.INSTALL_TEST_DIR }}\python\openvino\test_utils;${{ env.INSTALL_TEST_DIR }}\python;%PYTHONPATH%
@ -474,8 +474,6 @@ jobs:
if: fromJSON(needs.smart_ci.outputs.affected_components).MO.test if: fromJSON(needs.smart_ci.outputs.affected_components).MO.test
shell: cmd shell: cmd
run: | run: |
python3 -m pip install -r ${{ env.LAYER_TESTS_INSTALL_DIR }}/requirements.txt
:: Used for 'test_utils' installed in '<test_package>\python\openvino\test_utils' :: Used for 'test_utils' installed in '<test_package>\python\openvino\test_utils'
set PYTHONPATH=${{ env.INSTALL_TEST_DIR }}\python\openvino\test_utils;${{ env.INSTALL_TEST_DIR }}\python;%PYTHONPATH% set PYTHONPATH=${{ env.INSTALL_TEST_DIR }}\python\openvino\test_utils;${{ env.INSTALL_TEST_DIR }}\python;%PYTHONPATH%
@ -490,8 +488,6 @@ jobs:
fromJSON(needs.smart_ci.outputs.affected_components).PDPD_FE.test fromJSON(needs.smart_ci.outputs.affected_components).PDPD_FE.test
shell: cmd shell: cmd
run: | run: |
python3 -m pip install -r ${{ env.LAYER_TESTS_INSTALL_DIR }}/requirements.txt
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 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
- name: OVC unit tests - name: OVC unit tests
@ -778,7 +774,7 @@ jobs:
with: with:
version: ${{ env.PYTHON_VERSION }} version: ${{ env.PYTHON_VERSION }}
should-setup-pip-paths: 'false' should-setup-pip-paths: 'false'
self-hosted-runner: 'false' self-hosted-runner: 'true'
- name: Install python dependencies - name: Install python dependencies
shell: cmd shell: cmd