[GHA] Removed dependency on git repo in python tests (#20390)

* Removed repo deps in py tests

* fixed typo

* changed test cmd

* add test_utils to pythonpath

* set test_utils to LD_LIBRARY_PATH

* changed path

* changed path

* source python site-packages

* fixed LD_LIBRARY_PATH

* print pip dir

* changed python install path

* source all openvino dir

* isolate test_utils

* system deps

* reordered deps

* dep conflict

* tests reorder

* changed test_utils path

* cpack test dir

* rebase fix

* fixed env

* frontend tests fix

* removed already installed reqs

* debug

* debug 2

* added python action path

* test

* reset 3rdparties

* set pip install path globally

* reset 3rdparties

* removed parallel code

* moved doc snippets

* switched back 4-core runner

* removed global unused vars

* removed unused requirements.txt

* removed unused requirements

* test

* Revert "test"

This reverts commit bdf22d22fd6ec5d488930bc362bdb0741c5bea76.
This commit is contained in:
Mikhail Ryzhov 2023-10-25 22:16:01 +02:00 committed by GitHub
parent 214e08599b
commit 49c5099f5e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 141 additions and 125 deletions

View File

@ -105,6 +105,13 @@ jobs:
PIP_VER=$(python3 -c "import pip; print(pip.__version__)")
echo "Using pip version: ${PIP_VER}"
echo "PIP_CACHE_DIR=${PIP_CACHE_PATH}/${PIP_VER}" >> $GITHUB_ENV
- name: Get pip cache info
run: |
echo "Cache size: "
du -h -d2 ${PIP_CACHE_DIR}
echo "Cache info: "
python -m pip cache info
continue-on-error: true
- name: Install python dependencies
run: |
@ -865,38 +872,9 @@ jobs:
LAYER_TESTS_INSTALL_DIR: /__w/openvino/openvino/install/tests/layer_tests
steps:
- name: Install git
run: |
apt update
apt install --assume-yes --no-install-recommends git ca-certificates
- name: Clone OpenVINO
uses: actions/checkout@v4
with:
path: 'openvino'
#
# Initialize OpenVINO
#
- uses: actions/setup-python@v4
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Setup pip cache dir
run: |
PIP_VER=$(python3 -c "import pip; print(pip.__version__)")
echo "Using pip version: ${PIP_VER}"
echo "PIP_CACHE_DIR=${PIP_CACHE_PATH}/${PIP_VER}" >> $GITHUB_ENV
- name: Install Python API tests dependencies
run: |
# For torchvision to OpenVINO preprocessing converter
python3 -m pip install -r ${OPENVINO_REPO}/src/bindings/python/src/openvino/preprocess/torchvision/requirements.txt
# TODO: replace with Python API tests requirements
python3 -m pip install -r ${OPENVINO_REPO}/tools/mo/requirements_dev.txt
- name: Download OpenVINO package
uses: actions/download-artifact@v3
with:
@ -919,6 +897,20 @@ jobs:
tar -xzf openvino_tests.tar.gz -C ${INSTALL_DIR}
popd
- name: Install 'actions/setup-python@v4' dependencies
run: apt-get update && apt-get install -y libssl1.1 ca-certificates
- uses: actions/setup-python@v4
with:
python-version: ${{ env.PYTHON_VERSION }}
env:
PIP_CACHE_DIR: ${{ env.PIP_CACHE_PATH }}
- name: Setup pip cache dir
run: |
PIP_VER=$(python3 -c "import pip; print(pip.__version__)")
echo "Using pip version: ${PIP_VER}"
echo "PIP_CACHE_DIR=${PIP_CACHE_PATH}/${PIP_VER}" >> $GITHUB_ENV
echo "PIP_INSTALL_PATH=${Python_ROOT_DIR}/lib/python${PYTHON_VERSION}/site-packages" >> $GITHUB_ENV
- name: Install OpenVINO Python wheels
run: |
# Install the core OV wheel
@ -930,6 +922,14 @@ jobs:
python3 -m pip install $ov_dev_wheel_name[mxnet,caffe,kaldi,onnx,tensorflow2,pytorch]
popd
- name: Install Python API tests dependencies
run: |
# For torchvision to OpenVINO preprocessing converter
python3 -m pip install -r ${INSTALL_TEST_DIR}/python/preprocess/torchvision/requirements.txt
# TODO: replace with Python API tests requirements
python3 -m pip install -r ${INSTALL_TEST_DIR}/mo/requirements_dev.txt
#
# Tests
#
@ -945,19 +945,10 @@ jobs:
run: |
# for 'template' extension
export LD_LIBRARY_PATH=${INSTALL_TEST_DIR}:$LD_LIBRARY_PATH
python3 -m pytest -sv ${INSTALL_TEST_DIR}/pyopenvino \
--junitxml=${INSTALL_TEST_DIR}/TEST-Pyngraph.xml \
--ignore=${INSTALL_TEST_DIR}/pyopenvino/tests/test_utils/test_utils.py
- name: Docs Python snippets
run: |
# to find 'snippets' module in docs
export PYTHONPATH=${OPENVINO_REPO}/docs/:$PYTHONPATH
# for 'template' extension
export LD_LIBRARY_PATH=${INSTALL_TEST_DIR}:$LD_LIBRARY_PATH
python3 ${OPENVINO_REPO}/docs/snippets/main.py
- name: Model Optimizer unit tests
run: |
# required for MxNet
@ -966,87 +957,26 @@ jobs:
python3 -m pytest -s ${INSTALL_TEST_DIR}/mo/unit_tests \
--junitxml=${INSTALL_TEST_DIR}/TEST-ModelOptimizer.xml
- name: PyTorch Layer Tests
run: |
python3 -m pip install -r ${LAYER_TESTS_INSTALL_DIR}/requirements.txt
python3 -m pytest ${LAYER_TESTS_INSTALL_DIR}/pytorch_tests -m precommit --junitxml=${INSTALL_TEST_DIR}/TEST-pytorch.xml
env:
TEST_DEVICE: CPU
TEST_PRECISION: FP16
- name: ONNX Layer Tests
run: |
python3 -m pip install -r ${LAYER_TESTS_INSTALL_DIR}/requirements.txt
# requires 'unit_tests' from 'tools/mo'
export PYTHONPATH=${OPENVINO_REPO}/tools/mo/:$PYTHONPATH
python3 -m pytest ${LAYER_TESTS_INSTALL_DIR}/onnx_tests -m "not launch_only_if_manually_specified and precommit" --junitxml=${INSTALL_TEST_DIR}/TEST-onnx.xml
env:
TEST_DEVICE: CPU
TEST_PRECISION: FP16
- name: TensorFlow 1 Layer Tests - TF FE
run: |
python3 -m pip install -r ${LAYER_TESTS_INSTALL_DIR}/requirements.txt
# requires 'unit_tests' from 'tools/mo'
export PYTHONPATH=${OPENVINO_REPO}/tools/mo/:$PYTHONPATH
python3 -m pytest ${LAYER_TESTS_INSTALL_DIR}/tensorflow_tests/ --use_new_frontend -m precommit_tf_fe --junitxml=${INSTALL_TEST_DIR}/TEST-tf_fe.xml
env:
TEST_DEVICE: CPU
TEST_PRECISION: FP16
- name: TensorFlow 2 Layer Tests - TF FE
run: |
python3 -m pip install -r ${LAYER_TESTS_INSTALL_DIR}/requirements.txt
# requires 'unit_tests' from 'tools/mo'
export PYTHONPATH=${OPENVINO_REPO}/tools/mo/:$PYTHONPATH
python3 -m pytest ${LAYER_TESTS_INSTALL_DIR}/tensorflow2_keras_tests/ --use_new_frontend -m precommit_tf_fe --junitxml=${INSTALL_TEST_DIR}/TEST-tf2_fe.xml
env:
TEST_DEVICE: CPU
TEST_PRECISION: FP16
- name: JAX Layer Tests - TF FE
run: |
python3 -m pip install -r ${LAYER_TESTS_INSTALL_DIR}/requirements.txt
python3 -m pytest ${LAYER_TESTS_INSTALL_DIR}/jax_tests/ -m precommit --junitxml=${INSTALL_TEST_DIR}/TEST-jax.xml
env:
TEST_DEVICE: CPU
- name: TensorFlow 1 Layer Tests - Legacy FE
run: |
python3 -m pip install -r ${LAYER_TESTS_INSTALL_DIR}/requirements.txt
python3 -m pytest ${LAYER_TESTS_INSTALL_DIR}/tensorflow_tests/test_tf_Roll.py --ir_version=10 --junitxml=${INSTALL_TEST_DIR}/TEST-tf_Roll.xml
- name: TensorFlow 2 Layer Tests - Legacy FE
run: |
python3 -m pip install -r ${LAYER_TESTS_INSTALL_DIR}/requirements.txt
python3 -m pytest ${LAYER_TESTS_INSTALL_DIR}/tensorflow2_keras_tests/test_tf2_keras_activation.py \
--ir_version=11 --junitxml=${INSTALL_TEST_DIR}/TEST-tf2_Activation.xml -k "sigmoid"
env:
TEST_DEVICE: CPU
TEST_PRECISION: FP16
- name: TensorFlow Lite Layer Tests - TFL FE
run: |
python3 -m pip install -r ${LAYER_TESTS_INSTALL_DIR}/requirements.txt
python3 -m pytest ${LAYER_TESTS_INSTALL_DIR}/tensorflow_lite_tests/ --junitxml=${INSTALL_TEST_DIR}/TEST-tfl_fe.xml
env:
TEST_DEVICE: CPU
TEST_PRECISION: FP16
- name: Python ONNX operators tests
run: |
# Skip test_onnx/test_zoo_models and test_onnx/test_backend due to long execution time - ONNX Model Zoo tests are run separately
python3 -m pytest -sv ${OPENVINO_REPO}/src/frontends/onnx/tests -k 'not cuda' \
python3 -m pytest -sv ${INSTALL_TEST_DIR}/onnx -k 'not cuda' \
--junitxml=${INSTALL_TEST_DIR}/TEST-onnx_frontend.xml \
--ignore=${OPENVINO_REPO}/src/frontends/onnx/tests/test_python/test_zoo_models.py
--ignore=${INSTALL_TEST_DIR}/onnx/test_python/test_zoo_models.py \
- name: OVC unit tests
run: python3 -m pytest -s ${INSTALL_TEST_DIR}/ovc/unit_tests --junitxml=${INSTALL_TEST_DIR}/TEST-OpenVinoConversion.xml
- name: Install Python Layer tests dependencies
run: |
# layer test requirements
python3 -m pip install -r ${LAYER_TESTS_INSTALL_DIR}/requirements.txt
- name: MO Python API Tests
run: |
python3 -m pip install -r ${LAYER_TESTS_INSTALL_DIR}/requirements.txt
# TODO: remove setupvars.sh from here; currently, it's used for 'test_utils' installed in '<package>/python/openvino'
source ${INSTALL_DIR}/setupvars.sh
bash ${INSTALL_DIR}/install_dependencies/install_openvino_dependencies.sh -c=core -y
# Import 'test_utils' installed in '<package_test>/tests/python/openvino'
export LD_LIBRARY_PATH=${PIP_INSTALL_PATH}/openvino/libs:$LD_LIBRARY_PATH
export PYTHONPATH=${INSTALL_TEST_DIR}/python
python3 -m pytest ${LAYER_TESTS_INSTALL_DIR}/mo_python_api_tests --junitxml=${INSTALL_TEST_DIR}/TEST-test_mo_convert.xml
env:
TEST_DEVICE: CPU
@ -1054,11 +984,9 @@ jobs:
- name: OVC Python API Tests
run: |
python3 -m pip install -r ${LAYER_TESTS_INSTALL_DIR}/requirements.txt
# TODO: remove setupvars.sh from here; currently, it's used for 'test_utils' installed in '<package>/python/openvino'
source ${INSTALL_DIR}/setupvars.sh
bash ${INSTALL_DIR}/install_dependencies/install_openvino_dependencies.sh -c=core -y
# Import 'test_utils' installed in '<package_test>/tests/python/openvino'
export PYTHONPATH=${INSTALL_TEST_DIR}/python
export LD_LIBRARY_PATH=${PIP_INSTALL_PATH}/openvino/libs:$LD_LIBRARY_PATH
python3 -m pytest ${LAYER_TESTS_INSTALL_DIR}/ovc_python_api_tests --junitxml=${INSTALL_TEST_DIR}/TEST-test_ovc_convert.xml
env:
TEST_DEVICE: CPU
@ -1066,15 +994,77 @@ jobs:
- name: Python Frontend tests
run: |
python3 -m pip install -r ${LAYER_TESTS_INSTALL_DIR}/requirements.txt
# to allow 'libtest_builtin_extensions.so' to find 'libopenvino_onnx_frontend.so'
source ${INSTALL_DIR}/setupvars.sh
export LD_LIBRARY_PATH=${PIP_INSTALL_PATH}/openvino/libs:$LD_LIBRARY_PATH
python3 -m pytest ${LAYER_TESTS_INSTALL_DIR}/py_frontend_tests --junitxml=${INSTALL_TEST_DIR}/TEST-test_py_fontend.xml
# TODO: install to 'tests' component via cpack
- name: OVC unit tests
run: python3 -m pytest -s ${OPENVINO_REPO}/tools/ovc/unit_tests --junitxml=${INSTALL_TEST_DIR}/TEST-OpenVinoConversion.xml
- name: PyTorch Layer Tests
run: python3 -m pytest ${LAYER_TESTS_INSTALL_DIR}/pytorch_tests -m precommit --junitxml=${INSTALL_TEST_DIR}/TEST-pytorch.xml
env:
TEST_DEVICE: CPU
TEST_PRECISION: FP16
- name: ONNX Layer Tests
run: |
# requires 'unit_tests' from 'tools/mo'
export PYTHONPATH=${INSTALL_TEST_DIR}/mo:$PYTHONPATH
python3 -m pytest ${LAYER_TESTS_INSTALL_DIR}/onnx_tests -m "not launch_only_if_manually_specified and precommit" --junitxml=${INSTALL_TEST_DIR}/TEST-onnx.xml
env:
TEST_DEVICE: CPU
TEST_PRECISION: FP16
- name: TensorFlow 1 Layer Tests - TF FE
run: |
# requires 'unit_tests' from 'mo'
export PYTHONPATH=${INSTALL_TEST_DIR}/mo
python3 -m pytest ${LAYER_TESTS_INSTALL_DIR}/tensorflow_tests/ --use_new_frontend -m precommit_tf_fe --junitxml=${INSTALL_TEST_DIR}/TEST-tf_fe.xml
env:
TEST_DEVICE: CPU
TEST_PRECISION: FP16
- name: TensorFlow 2 Layer Tests - TF FE
run: |
# requires 'unit_tests' from 'mo'
export PYTHONPATH=${INSTALL_TEST_DIR}/mo
python3 -m pytest ${LAYER_TESTS_INSTALL_DIR}/tensorflow2_keras_tests/ --use_new_frontend -m precommit_tf_fe --junitxml=${INSTALL_TEST_DIR}/TEST-tf2_fe.xml
env:
TEST_DEVICE: CPU
TEST_PRECISION: FP16
- name: JAX Layer Tests - TF FE
run: python3 -m pytest ${LAYER_TESTS_INSTALL_DIR}/jax_tests/ -m precommit --junitxml=${INSTALL_TEST_DIR}/TEST-jax.xml
env:
TEST_DEVICE: CPU
- name: TensorFlow 1 Layer Tests - Legacy FE
run: python3 -m pytest ${LAYER_TESTS_INSTALL_DIR}/tensorflow_tests/test_tf_Roll.py --ir_version=10 --junitxml=${INSTALL_TEST_DIR}/TEST-tf_Roll.xml
- name: TensorFlow 2 Layer Tests - Legacy FE
run: python3 -m pytest ${LAYER_TESTS_INSTALL_DIR}/tensorflow2_keras_tests/test_tf2_keras_activation.py --ir_version=11 -k "sigmoid" --junitxml=${INSTALL_TEST_DIR}/TEST-tf2_Activation.xml
env:
TEST_DEVICE: CPU
TEST_PRECISION: FP16
- name: TensorFlow Lite Layer Tests - TFL FE
run: python3 -m pytest ${LAYER_TESTS_INSTALL_DIR}/tensorflow_lite_tests/ --junitxml=${INSTALL_TEST_DIR}/TEST-tfl_fe.xml
env:
TEST_DEVICE: CPU
TEST_PRECISION: FP16
- name: Clone API snippets
uses: actions/checkout@v4
with:
sparse-checkout: openvino/docs/snippets
path: ${{ env.OPENVINO_REPO }}
submodules: 'false'
- name: Docs Python snippets
run: |
# to find 'snippets' module in docs
export PYTHONPATH=${OPENVINO_REPO}/docs
# for 'template' extension
export LD_LIBRARY_PATH=${INSTALL_TEST_DIR}:$LD_LIBRARY_PATH
python3 ${OPENVINO_REPO}/docs/snippets/main.py
- name: Upload Test Results
uses: actions/upload-artifact@v3

View File

@ -403,6 +403,14 @@ endif()
if(ENABLE_TESTS)
add_subdirectory(tests/mock/mock_py_frontend)
add_subdirectory(tests/mock/pyngraph_fe_mock_api)
install(FILES constraints.txt
DESTINATION tests/bindings/python
COMPONENT tests
EXCLUDE_FROM_ALL)
install(FILES src/openvino/preprocess/torchvision/requirements.txt
DESTINATION tests/python/preprocess/torchvision
COMPONENT tests
EXCLUDE_FROM_ALL)
endif()
if(OpenVINODeveloperPackage_FOUND)

View File

@ -50,10 +50,10 @@ ov_add_clang_format_target(${TARGET_NAME}_clang FOR_TARGETS ${TARGET_NAME}
install(TARGETS ${TARGET_NAME}
RUNTIME DESTINATION ${OV_CPACK_PYTHONDIR}/openvino/test_utils
COMPONENT tests EXCLUDE_FROM_ALL
LIBRARY DESTINATION ${OV_CPACK_PYTHONDIR}/openvino/test_utils
LIBRARY DESTINATION tests/${OV_CPACK_PYTHONDIR}/openvino/test_utils
COMPONENT tests EXCLUDE_FROM_ALL)
install(PROGRAMS ${OpenVINOPython_SOURCE_DIR}/src/openvino/test_utils/__init__.py
DESTINATION ${OV_CPACK_PYTHONDIR}/openvino/test_utils
DESTINATION tests/${OV_CPACK_PYTHONDIR}/openvino/test_utils
COMPONENT tests
EXCLUDE_FROM_ALL)

View File

@ -165,6 +165,14 @@ target_include_directories(ov_onnx_frontend_tests PRIVATE
install(TARGETS ov_onnx_frontend_tests
RUNTIME DESTINATION tests COMPONENT tests EXCLUDE_FROM_ALL)
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
DESTINATION tests/onnx
COMPONENT tests EXCLUDE_FROM_ALL
FILES_MATCHING
PATTERN "*.py"
PATTERN "*.onnx"
PATTERN "*.data")
add_custom_command(TARGET ov_onnx_frontend_tests POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_CURRENT_SOURCE_DIR}/unit_test.manifest"
"${TEST_MODEL_ZOO_OUTPUT_DIR}/onnx/unit_test.manifest"

View File

@ -35,6 +35,16 @@ install(DIRECTORY ${OpenVINOConverter_SOURCE_DIR}/openvino
${OV_CPACK_COMP_OVC_EXCLUDE_ALL}
USE_SOURCE_PERMISSIONS)
#
# Tests
#
if(ENABLE_TESTS)
install(DIRECTORY unit_tests
DESTINATION tests/ovc
COMPONENT tests
EXCLUDE_FROM_ALL)
endif()
#
# Cpack
#