[DO NOT MERGE] [CI] OV tests in GitHub Actions #218
Workflow file for this run
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 Linux | |
on: | |
workflow_dispatch: | |
pull_request: | |
push: | |
branches: | |
- master | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
Build: | |
defaults: | |
run: | |
shell: bash | |
runs-on: ubuntu-latest-8-cores | |
container: | |
image: akashchi/ubuntu:python_311 | |
env: | |
CMAKE_BUILD_TYPE: 'Release' | |
# CCACHE_MAXSIZE: '10G' | |
CMAKE_GENERATOR: 'Ninja' | |
CMAKE_OSX_DEPLOYMENT_TARGET: '11.0' | |
CMAKE_CXX_COMPILER_LAUNCHER: ccache | |
CMAKE_C_COMPILER_LAUNCHER: ccache | |
OPENVINO_REPO: /workdir/openvino | |
OPENVINO_CONTRIB_REPO: /workdir/openvino_contrib | |
INSTALL_DIR: /workdir/install | |
INSTALL_TEST_DIR: /workdir/install/tests | |
SAMPLES_INSTALL_DIR: /workdir/install/samples | |
LAYER_TESTS_INSTALL_DIR: /workdir/install/tests/layer_tests | |
BUILD_DIR: /workdir/build | |
DATA_PATH: /workdir/testdata | |
MODELS_PATH: /workdir/testdata | |
OV_TEMP: /workdir/openvino_temp | |
PYTHON_STATIC_ARGS: -m "not dynamic_library and not template_plugin" | |
steps: | |
- name: Create Working Directory | |
run: | | |
mkdir -p /workdir | |
ls -la /workdir | |
- name: Clone Repositories | |
run: | | |
# TODO: adapt when scheduled on actual branches | |
git clone --recurse-submodules https://github.com/akashchi/openvino.git ${{ env.OPENVINO_REPO }} | |
cd ${{ env.OPENVINO_REPO }} && git checkout ci/test-gha && git submodule update | |
git clone --recurse-submodules https://github.com/openvinotoolkit/openvino_contrib.git ${{ env.OPENVINO_CONTRIB_REPO }} | |
git clone --recurse-submodules https://github.com/openvinotoolkit/testdata.git ${{ env.DATA_PATH }} | |
cd ${{ env.DATA_PATH }} && git lfs pull | |
- name: Get tools versions | |
run: | | |
ninja --version || exit 1 | |
ccache --version || exit 1 | |
python3 --version || exit 1 | |
cmake --version || exit 1 | |
# | |
# Dependencies | |
# | |
- name: Install build dependencies | |
run: | | |
# TODO: install in the Docker image | |
${{ env.OPENVINO_REPO }}/install_build_dependencies.sh | |
apt-get update && apt-get --assume-yes install openjdk-11-jdk libbz2-dev clang libc6 | |
- name: Install python dependencies | |
run: | | |
# For Python API | |
python3 -m pip install --upgrade pip | |
python3 -m pip install Scons | |
python3 -m pip install -r ${{ env.OPENVINO_REPO }}/src/bindings/python/wheel/requirements-dev.txt | |
python3 -m pip install -r ${{ env.OPENVINO_REPO }}/src/bindings/python/requirements.txt | |
python3 -m pip install -r ${{ env.OPENVINO_REPO }}/src/bindings/python/requirements_test.txt | |
# For running Python API tests | |
python3 -m pip install -r ${{ env.OPENVINO_REPO }}/src/bindings/python/src/compatibility/openvino/requirements-dev.txt | |
# 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 Paddle frontend unit tests | |
python3 -m pip install -r ${{ env.OPENVINO_REPO }}/src/frontends/paddle/tests/requirements.txt | |
- name: Install MO dependencies | |
run: | | |
python3 -m pip install -r ${{ env.OPENVINO_REPO }}/tools/mo/requirements_mxnet.txt | |
python3 -m pip install -r ${{ env.OPENVINO_REPO }}/tools/mo/requirements_caffe.txt | |
python3 -m pip install -r ${{ env.OPENVINO_REPO }}/tools/mo/requirements_kaldi.txt | |
python3 -m pip install -r ${{ env.OPENVINO_REPO }}/tools/mo/requirements_onnx.txt | |
python3 -m pip install -r ${{ env.OPENVINO_REPO }}/tools/mo/requirements_tf2.txt | |
python3 -m pip install -r ${{ env.OPENVINO_REPO }}/tools/mo/requirements_dev.txt | |
# | |
# Build | |
# | |
- name: ccache | |
uses: hendrikmuhs/ccache-action@v1.2 | |
with: | |
max-size: "2000M" | |
# Should save cache only if run in the master branch of the base repo | |
# save: ${{ github.ref_name == 'master' }} | |
verbose: 2 | |
key: ${{ github.job }}-linux | |
restore-keys: | | |
${{ github.job }}-linux | |
- name: Get number of CPU cores | |
uses: SimenB/github-actions-cpu-cores@v1 | |
id: cpu-cores | |
- name: CMake configure | |
run: | | |
cmake \ | |
-GNinja \ | |
-DENABLE_CPPLINT=OFF \ | |
-DENABLE_NCC_STYLE=OFF \ | |
-DENABLE_TESTS=ON \ | |
-DENABLE_PYTHON=ON \ | |
-DCMAKE_VERBOSE_MAKEFILE=ON \ | |
-DCMAKE_BUILD_TYPE=Release \ | |
-DBUILD_SHARED_LIBS=ON \ | |
-DENABLE_ONEDNN_FOR_GPU=OFF \ | |
-DENABLE_OV_ONNX_FRONTEND=ON \ | |
-DCMAKE_COMPILE_WARNING_AS_ERROR=OFF \ | |
-DENABLE_STRICT_DEPENDENCIES=OFF \ | |
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ | |
-DCMAKE_C_COMPILER_LAUNCHER=ccache \ | |
-DCMAKE_CXX_LINKER_LAUNCHER=ccache \ | |
-DCMAKE_C_LINKER_LAUNCHER=ccache \ | |
-DENABLE_SYSTEM_SNAPPY=ON \ | |
-DENABLE_SYSTEM_TBB=ON \ | |
-DBUILD_nvidia_plugin=OFF \ | |
-DENABLE_DEBUG_CAPS=ON \ | |
-DCUSTOM_OPERATIONS="calculate_grid;complex_mul;fft;grid_sample;sparse_conv;sparse_conv_transpose" \ | |
-DOPENVINO_EXTRA_MODULES=${{ env.OPENVINO_CONTRIB_REPO }}/modules \ | |
-S ${{ env.OPENVINO_REPO }} \ | |
-B ${{ env.BUILD_DIR }} | |
- name: Clean ccache stats | |
run: ccache --zero-stats --show-config | |
- name: Build | |
run: cmake --build ${{ env.BUILD_DIR }} --parallel ${{ steps.cpu-cores.outputs.count }} --config Release | |
- name: Show ccache stats | |
run: ccache --show-stats | |
- name: Cmake Layer Tests | |
run: cmake -GNinja -S ${{ env.OPENVINO_REPO }}/tests/layer_tests -B ${{ env.BUILD_DIR }}/layer_tests | |
- name: Build Layer Tests | |
run: cmake --build ${{ env.BUILD_DIR }}/layer_tests --parallel --config Release | |
- name: Install wheel packages | |
run: cmake -DCOMPONENT=python_wheels -DCMAKE_INSTALL_PREFIX=${{ env.INSTALL_DIR }} -P ${{ env.BUILD_DIR }}/cmake_install.cmake | |
- name: Install Layer Tests | |
run: cmake -DCOMPONENT=tests -DCMAKE_INSTALL_PREFIX=${{ env.INSTALL_DIR }} -P ${{ env.BUILD_DIR }}/layer_tests/cmake_install.cmake | |
- name: Install python wheels | |
run: python3 -m pip install openvino-dev --find-links=${{ env.INSTALL_DIR }}/tools | |
- name: Install tests | |
run: cmake -DCMAKE_INSTALL_PREFIX=${{ env.INSTALL_DIR }} -DCOMPONENT=tests -P ${{ env.BUILD_DIR }}/cmake_install.cmake | |
- name: Install OpenVINO | |
run: cmake -DCMAKE_INSTALL_PREFIX=${{ env.INSTALL_DIR }} -P ${{ env.BUILD_DIR }}/cmake_install.cmake | |
- name: CMake Samples Tests | |
run: cmake -GNinja -S ${{ env.OPENVINO_REPO }}/tests/samples_tests -B ${{ env.BUILD_DIR }}/samples_tests | |
- name: Build Samples Tests | |
run: cmake --build ${{ env.BUILD_DIR }}/samples_tests --config Release | |
- name: Install Samples Tests | |
run: cmake -DCOMPONENT=tests -DCMAKE_INSTALL_PREFIX=${{ env.INSTALL_DIR }} -P ${{ env.BUILD_DIR }}/samples_tests/cmake_install.cmake | |
- name: Pack Artifacts | |
run: | | |
pushd ${{ env.INSTALL_DIR }} | |
tar -czvf ${{ env.BUILD_DIR }}/openvino_package.tar.gz --exclude=tests * | |
popd | |
pushd ${{ env.INSTALL_DIR }} | |
tar -czvf ${{ env.BUILD_DIR }}/openvino_tests.tar.gz tests/ | |
popd | |
- name: Build cpp samples | |
run: ${{ env.SAMPLES_INSTALL_DIR }}/cpp/build_samples.sh -i ${{ env.INSTALL_DIR }} -b ${{ env.BUILD_DIR }}/cpp_samples | |
- name: Build c samples | |
run: ${{ env.SAMPLES_INSTALL_DIR }}/c/build_samples.sh -i ${{ env.INSTALL_DIR }} -b ${{ env.BUILD_DIR }}/c_samples | |
- name: Samples tests | |
if: ${{ always() }} | |
run: | | |
python3 -m pip install --ignore-installed PyYAML -r ${{ env.INSTALL_TEST_DIR }}/smoke_tests/requirements.txt | |
export LD_LIBRARY_PATH=${{ env.IE_APP_PATH }}:$LD_LIBRARY_PATH | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
python3 -m pytest -sv ${{ env.INSTALL_TEST_DIR }}/smoke_tests \ | |
--env_conf ${{ env.INSTALL_TEST_DIR }}/smoke_tests/env_config.yml \ | |
--junitxml=${{ env.INSTALL_TEST_DIR }}/TEST-SamplesSmokeTests.xml | |
env: | |
IE_APP_PATH: ${{ env.INSTALL_DIR }}/samples_bin | |
IE_APP_PYTHON_PATH: ${{ env.INSTALL_DIR }}/samples/python | |
SHARE: ${{ env.INSTALL_TEST_DIR }}/smoke_tests/samples_smoke_tests_data | |
WORKSPACE: ${{ env.INSTALL_DIR }} | |
- name: ONNX frontend tests | |
if: ${{ always() }} | |
run: | | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
${{ env.INSTALL_TEST_DIR }}/ov_onnx_frontend_tests --gtest_print_time=1 --gtest_filter=-*IE_GPU*:*FrontEndLoadFromTest.testLoadFromTwoStreams*:*FrontEndLoadFromTest.testLoadFromTwoFiles* \ | |
--gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-ONNXFrontend.xml | |
- name: Upload openvino package | |
if: ${{ always() }} | |
uses: actions/upload-artifact@v3 | |
with: | |
name: openvino_package | |
path: ${{ env.BUILD_DIR }}/openvino_package.tar.gz | |
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.tar.gz | |
if-no-files-found: 'error' | |
CXX_Unit_Tests: | |
needs: Build | |
defaults: | |
run: | |
shell: bash | |
runs-on: ubuntu-latest | |
container: | |
image: akashchi/ubuntu:python_311 | |
env: | |
INSTALL_DIR: /github/install | |
INSTALL_TEST_DIR: /github/install/tests | |
BUILD_DIR: /github/build | |
DATA_PATH: /github/testdata | |
MODELS_PATH: /github/testdata | |
OV_TEMP: /github/openvino_temp | |
PYTHON_STATIC_ARGS: -m "not dynamic_library and not template_plugin" | |
steps: | |
- name: Create Directories | |
run: | | |
mkdir -p ${{ env.INSTALL_DIR }} ${{ env.INSTALL_TEST_DIR }} | |
- name: Download OpenVINO package | |
uses: actions/download-artifact@v3 | |
with: | |
name: openvino_package | |
path: ${{ env.INSTALL_DIR }} | |
- name: Download OpenVINO tests package | |
uses: actions/download-artifact@v3 | |
with: | |
name: openvino_tests | |
path: ${{ env.INSTALL_TEST_DIR }} | |
- name: Extract OpenVINO packages | |
run: | | |
pushd ${{ env.INSTALL_DIR }} | |
tar -xzf openvino_package.tar.gz -C ${{ env.INSTALL_DIR }} && rm openvino_package.tar.gz || exit 1 | |
popd | |
pushd ${{ env.INSTALL_TEST_DIR }} | |
tar -xzf openvino_tests.tar.gz -C ${{ env.INSTALL_DIR }} && rm openvino_tests.tar.gz || exit 1 | |
popd | |
- name: OpenVINO Core Unit Tests | |
if: ${{ always() }} | |
run: | | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
${{ env.INSTALL_TEST_DIR }}/ov_core_unit_tests --gtest_print_time=1 --gtest_filter=-*IE_GPU* \ | |
--gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-NGraphUT.xml | |
- name: OpenVINO Inference Functional Tests | |
if: ${{ always() }} | |
run: | | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
${{ env.INSTALL_TEST_DIR }}/ov_inference_functional_tests --gtest_print_time=1 \ | |
--gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-InferenceFunc.xml | |
- name: OpenVINO Inference Unit Tests | |
if: ${{ always() }} | |
run: | | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
${{ env.INSTALL_TEST_DIR }}/ov_inference_unit_tests --gtest_print_time=1 \ | |
--gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-InferenceUnit.xml | |
- name: Low Precision Transformations Tests | |
if: ${{ always() }} | |
run: | | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
${{ env.INSTALL_TEST_DIR }}/ov_lp_transformations_tests --gtest_print_time=1 \ | |
--gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-LpTransformations.xml | |
- name: OpenVINO Conditional compilation tests | |
if: ${{ always() }} | |
run: | | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
${{ env.INSTALL_TEST_DIR }}/ov_conditional_compilation_tests --gtest_print_time=1 \ | |
--gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-ConditionalCompilation.xml | |
- name: IR frontend tests | |
if: ${{ always() }} | |
run: | | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
${{ env.INSTALL_TEST_DIR }}/ov_ir_frontend_tests --gtest_print_time=1 \ | |
--gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-IRFrontend.xml | |
# - name: PaddlePaddle frontend tests # Disabled in Azure: https://github.com/openvinotoolkit/openvino/blob/master/.ci/azure/linux.yml#L403 | |
# run: | | |
# source ${{ env.INSTALL_DIR }}/setupvars.sh | |
# ${{ env.INSTALL_TEST_DIR }}/paddle_tests --gtest_print_time=1 --gtest_filter=*smoke* \ | |
# --gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-PaddleTests.xml | |
# - name: ONNX frontend tests # Present in the "Build" job due to the fact that these tests require build directory | |
# if: ${{ always() }} | |
# run: | | |
# source ${{ env.INSTALL_DIR }}/setupvars.sh | |
# ${{ env.INSTALL_TEST_DIR }}/ov_onnx_frontend_tests --gtest_print_time=1 --gtest_filter=-*IE_GPU*:*FrontEndLoadFromTest.testLoadFromTwoStreams*:*FrontEndLoadFromTest.testLoadFromTwoFiles* \ | |
# --gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-ONNXFrontend.xml | |
- name: TensorFlow Common tests | |
if: ${{ always() }} | |
run: | | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
${{ env.INSTALL_TEST_DIR }}/ov_tensorflow_common_tests --gtest_print_time=1 \ | |
--gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-TensorFlowCommonFrontend.xml | |
- name: TensorFlow frontend tests | |
if: ${{ always() }} | |
run: | | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
${{ env.INSTALL_TEST_DIR }}/ov_tensorflow_frontend_tests --gtest_print_time=1 \ | |
--gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-TensorFlowFrontend.xml | |
- name: TensorFlow Lite frontend tests | |
if: ${{ always() }} | |
run: | | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
${{ env.INSTALL_TEST_DIR }}/ov_tensorflow_lite_frontend_tests --gtest_print_time=1 \ | |
--gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-TensorFlowLiteFrontend.xml | |
- name: Transformations Tests | |
if: ${{ always() }} | |
run: | | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
${{ env.INSTALL_TEST_DIR }}/ov_transformations_tests --gtest_print_time=1 \ | |
--gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-Transformations.xml | |
- name: Common test utils tests | |
if: ${{ always() }} | |
run: | | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
${{ env.INSTALL_TEST_DIR }}/commonUtilsTests --gtest_print_time=1 \ | |
--gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-commonUtilsTests.xml | |
- name: CPU plugin unit tests | |
if: ${{ always() }} | |
run: | | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
${{ env.INSTALL_TEST_DIR }}/ov_cpu_unit_tests --gtest_print_time=1 \ | |
--gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-CPUUnitTests.xml | |
# - name: GNA plugin unit tests # Disabled in Azure: https://github.com/openvinotoolkit/openvino/blob/master/.ci/azure/linux.yml#L409 | |
# run: | | |
# source ${{ env.INSTALL_DIR }}/setupvars.sh | |
# ${{ env.INSTALL_TEST_DIR }}/ov_gna_unit_tests --gtest_print_time=1 \ | |
# --gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-GNAUnitTests.xml | |
- name: AUTO UT | |
if: ${{ always() }} | |
run: | | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
${{ env.INSTALL_TEST_DIR }}/ov_auto_unit_tests --gtest_print_time=1 \ | |
--gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-ov_auto_unit_tests.xml | |
- name: Template plugin tests | |
if: ${{ always() }} | |
run: | | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
${{ env.INSTALL_TEST_DIR }}/ov_template_func_tests --gtest_print_time=1 \ | |
--gtest_filter=*smoke* \ | |
--gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-TemplateFuncTests.xml | |
- name: Inference Engine C API tests | |
if: ${{ always() }} | |
run: | | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
${{ env.INSTALL_TEST_DIR }}/InferenceEngineCAPITests --gtest_print_time=1 \ | |
--gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-InferenceEngineCAPITests.xml | |
- name: OpenVINO C API tests | |
if: ${{ always() }} | |
run: | | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
${{ env.INSTALL_TEST_DIR }}/ov_capi_test --gtest_print_time=1 \ | |
--gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-OpenVINOCAPITests.xml | |
- name: AutoBatch FuncTests | |
if: ${{ always() }} | |
run: | | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
${{ env.INSTALL_TEST_DIR }}/ov_auto_batch_func_tests --gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-ov_auto_batch_func_tests.xml | |
- name: Upload Test Results | |
uses: actions/upload-artifact@v3 | |
if: ${{ always() }} | |
with: | |
name: test-results-cpp | |
path: ${{ env.INSTALL_TEST_DIR }}/TEST*.xml | |
if-no-files-found: 'error' | |
Python_Unit_Tests: | |
needs: Build | |
defaults: | |
run: | |
shell: bash | |
runs-on: ubuntu-latest | |
container: | |
image: akashchi/ubuntu:python_311 | |
options: --user root | |
env: | |
OPENVINO_REPO: /workdir/openvino | |
OPENVINO_CONTRIB_REPO: /workdir/openvino_contrib | |
INSTALL_DIR: /workdir/install | |
INSTALL_TEST_DIR: /workdir/install/tests | |
SAMPLES_INSTALL_DIR: /workdir/install/samples | |
LAYER_TESTS_INSTALL_DIR: /workdir/install/tests/layer_tests | |
BUILD_DIR: /workdir/build | |
DATA_PATH: /workdir/testdata | |
MODELS_PATH: /workdir/testdata | |
OV_TEMP: /workdir/openvino_temp | |
PYTHON_STATIC_ARGS: -m "not dynamic_library and not template_plugin" | |
steps: | |
- name: Create Working Directory | |
run: | | |
mkdir -p /workdir ${{ env.INSTALL_DIR }} ${{ env.INSTALL_TEST_DIR }} | |
ls -la /github | |
- name: Clone Repositories | |
run: | | |
# TODO: adapt when scheduled on actual branches | |
git clone --recurse-submodules https://github.com/akashchi/openvino.git ${{ env.OPENVINO_REPO }} | |
cd ${{ env.OPENVINO_REPO }} && git checkout ci/test-gha && git submodule update | |
git clone --recurse-submodules https://github.com/openvinotoolkit/openvino_contrib.git ${{ env.OPENVINO_CONTRIB_REPO }} | |
# | |
# Dependencies | |
# | |
- name: Install python dependencies | |
run: | | |
# For Python API | |
python3 -m pip install --upgrade pip | |
python3 -m pip install -r ${{ env.OPENVINO_REPO }}/src/bindings/python/wheel/requirements-dev.txt | |
python3 -m pip install -r ${{ env.OPENVINO_REPO }}/src/bindings/python/requirements.txt | |
# For running Python API tests | |
python3 -m pip install -r ${{ env.OPENVINO_REPO }}/src/bindings/python/src/compatibility/openvino/requirements-dev.txt | |
# 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 Paddle frontend unit tests | |
python3 -m pip install -r ${{ env.OPENVINO_REPO }}/src/frontends/paddle/tests/requirements.txt | |
- name: Install MO dependencies | |
run: | | |
python3 -m pip install -r ${{ env.OPENVINO_REPO }}/tools/mo/requirements_mxnet.txt | |
python3 -m pip install -r ${{ env.OPENVINO_REPO }}/tools/mo/requirements_caffe.txt | |
python3 -m pip install -r ${{ env.OPENVINO_REPO }}/tools/mo/requirements_kaldi.txt | |
python3 -m pip install -r ${{ env.OPENVINO_REPO }}/tools/mo/requirements_onnx.txt | |
python3 -m pip install -r ${{ env.OPENVINO_REPO }}/tools/mo/requirements_tf2.txt | |
python3 -m pip install -r ${{ env.OPENVINO_REPO }}/tools/mo/requirements_dev.txt | |
- name: Download OpenVINO package | |
uses: actions/download-artifact@v3 | |
with: | |
name: openvino_package | |
path: ${{ env.INSTALL_DIR }} | |
- name: Download OpenVINO tests package | |
uses: actions/download-artifact@v3 | |
with: | |
name: openvino_tests | |
path: ${{ env.INSTALL_TEST_DIR }} | |
- name: Extract OpenVINO packages | |
run: | | |
pushd ${{ env.INSTALL_DIR }} | |
tar -xzf openvino_package.tar.gz -C ${{ env.INSTALL_DIR }} && rm openvino_package.tar.gz || exit 1 | |
popd | |
pushd ${{ env.INSTALL_TEST_DIR }} | |
tar -xzf openvino_tests.tar.gz -C ${{ env.INSTALL_DIR }} && rm openvino_tests.tar.gz || exit 1 | |
popd | |
- name: Install Python wheels | |
run: | | |
python3 -m pip install openvino-dev --find-links=${{ env.INSTALL_DIR }}/tools | |
- name: nGraph and IE Python Bindings Tests | |
run: | | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
python3 -m pytest -s ${{ env.INSTALL_TEST_DIR }}/pyngraph ${{ env.PYTHON_STATIC_ARGS }} \ | |
--junitxml=${{ env.INSTALL_TEST_DIR }}/TEST-Pyngraph.xml \ | |
--ignore=${{ env.INSTALL_TEST_DIR }}/pyngraph/tests/test_onnx/test_zoo_models.py \ | |
--ignore=${{ env.INSTALL_TEST_DIR }}/pyngraph/tests/test_onnx/test_backend.py | |
- name: Python API 2.0 Tests | |
run: | | |
# For python imports to import pybind_mock_frontend | |
export PYTHONPATH=${{ env.INSTALL_TEST_DIR }}:$PYTHONPATH | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
python3 -m pytest -sv ${{ env.INSTALL_TEST_DIR }}/pyopenvino ${{ env.PYTHON_STATIC_ARGS }} \ | |
--junitxml=${{ env.INSTALL_TEST_DIR }}/TEST-Pyngraph.xml \ | |
--ignore=${{ env.INSTALL_TEST_DIR }}/pyopenvino/tests/test_utils/test_utils.py \ | |
--ignore=${{ env.INSTALL_TEST_DIR }}/pyopenvino/tests/test_onnx/test_zoo_models.py \ | |
--ignore=${{ env.INSTALL_TEST_DIR }}/pyopenvino/tests/test_onnx/test_backend.py | |
- name: Model Optimizer UT | |
if: ${{ always() }} | |
run: | | |
export PYTHONPATH=${{ env.OPENVINO_REPO }}/tools/mo/:${{ env.LAYER_TESTS_INSTALL_DIR }}:${{ env.INSTALL_TEST_DIR }}:${{ env.INSTALL_DIR }}/python/python3.11:$PYTHONPATH | |
# TODO: figure out why they need to be reinstalled | |
python3 -m pip install -r ${{ env.OPENVINO_REPO }}/tools/mo/requirements_mxnet.txt | |
python3 -m pip install -r ${{ env.OPENVINO_REPO }}/tools/mo/requirements_caffe.txt | |
python3 -m pip install -r ${{ env.OPENVINO_REPO }}/tools/mo/requirements_kaldi.txt | |
python3 -m pip install -r ${{ env.OPENVINO_REPO }}/tools/mo/requirements_onnx.txt | |
python3 -m pip install -r ${{ env.OPENVINO_REPO }}/tools/mo/requirements_tf2.txt | |
python3 -m pip install -r ${{ env.OPENVINO_REPO }}/tools/mo/requirements_dev.txt | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
python3 -m pytest -s ${{ env.INSTALL_TEST_DIR }}/mo/unit_tests \ | |
--junitxml=${{ env.INSTALL_TEST_DIR }}/TEST-ModelOptimizer.xml | |
- name: PyTorch Layer Tests | |
if: ${{ always() }} | |
run: | | |
python3 -m pip install -r ${{ env.LAYER_TESTS_INSTALL_DIR }}/requirements.txt | |
export PYTHONPATH=${{ env.OPENVINO_REPO }}/tools/mo/:${{ env.LAYER_TESTS_INSTALL_DIR }}:$PYTHONPATH | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
python3 -m pytest ${{ env.LAYER_TESTS_INSTALL_DIR }}/pytorch_tests -m precommit --junitxml=${{ env.INSTALL_TEST_DIR }}/TEST-pytorch.xml | |
env: | |
TEST_DEVICE: CPU | |
- name: TensorFlow 1 Layer Tests - TF FE | |
if: ${{ always() }} | |
run: | | |
python3 -m pip install -r ${{ env.LAYER_TESTS_INSTALL_DIR }}/requirements.txt | |
export PYTHONPATH=${{ env.OPENVINO_REPO }}/tools/mo/:${{ env.LAYER_TESTS_INSTALL_DIR }}:$PYTHONPATH | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
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 | |
env: | |
TEST_DEVICE: CPU | |
- name: TensorFlow 2 Layer Tests - TF FE | |
if: ${{ always() }} | |
run: | | |
python3 -m pip install -r ${{ env.LAYER_TESTS_INSTALL_DIR }}/requirements.txt | |
export PYTHONPATH=${{ env.OPENVINO_REPO }}/tools/mo/:${{ env.LAYER_TESTS_INSTALL_DIR }}:$PYTHONPATH | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
python3 -m pytest ${{ env.LAYER_TESTS_INSTALL_DIR }}/tensorflow2_keras_tests/ --use_new_frontend -m precommit_tf_fe --junitxml=${{ env.INSTALL_TEST_DIR }}/TEST-tf2_fe.xml | |
env: | |
TEST_DEVICE: CPU | |
- name: TensorFlow 1 Layer Tests - Legacy FE | |
if: ${{ always() }} | |
run: | | |
python3 -m pip install -r ${{ env.LAYER_TESTS_INSTALL_DIR }}/requirements.txt | |
export PYTHONPATH=${{ env.OPENVINO_REPO }}/tools/mo/:${{ env.LAYER_TESTS_INSTALL_DIR }}:$PYTHONPATH | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
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 | |
if: ${{ always() }} | |
run: | | |
python3 -m pip install -r ${{ env.LAYER_TESTS_INSTALL_DIR }}/requirements.txt | |
export PYTHONPATH=${{ env.OPENVINO_REPO }}/tools/mo/:${{ env.LAYER_TESTS_INSTALL_DIR }}:$PYTHONPATH | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
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: | |
TEST_DEVICE: CPU | |
- name: TensorFlow Lite Layer Tests - TFL FE | |
if: ${{ always() }} | |
run: | | |
python3 -m pip install -r ${{ env.LAYER_TESTS_INSTALL_DIR }}/requirements.txt | |
export PYTHONPATH=${{ env.OPENVINO_REPO }}/tools/mo/:${{ env.LAYER_TESTS_INSTALL_DIR }}:$PYTHONPATH | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
python3 -m pytest ${{ env.LAYER_TESTS_INSTALL_DIR }}/tensorflow_lite_tests/ --junitxml=${{ env.INSTALL_TEST_DIR }}/TEST-tfl_fe.xml | |
env: | |
TEST_DEVICE: CPU | |
- name: MO Python API Tests | |
if: ${{ always() }} | |
run: | | |
python3 -m pip install -r ${{ env.LAYER_TESTS_INSTALL_DIR }}/requirements.txt | |
export PYTHONPATH=${{ env.OPENVINO_REPO }}/tools/mo/:${{ env.LAYER_TESTS_INSTALL_DIR }}:$PYTHONPATH | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
python3 -m pytest ${{ env.LAYER_TESTS_INSTALL_DIR }}/mo_python_api_tests --junitxml=${{ env.INSTALL_TEST_DIR }}/TEST-test_mo_convert.xml | |
env: | |
TEST_DEVICE: CPU | |
- name: Python Frontend tests | |
if: ${{ always() }} | |
run: | | |
python3 -m pip install -r ${{ env.LAYER_TESTS_INSTALL_DIR }}/requirements.txt | |
export PYTHONPATH=${{ env.OPENVINO_REPO }}/tools/mo/:${{ env.LAYER_TESTS_INSTALL_DIR }}:$PYTHONPATH | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
python3 -m pytest ${{ env.LAYER_TESTS_INSTALL_DIR }}/py_frontend_tests --junitxml=${{ env.INSTALL_TEST_DIR }}/TEST-test_py_fontend.xml | |
- name: Upload Test Results | |
uses: actions/upload-artifact@v3 | |
if: ${{ always() }} | |
with: | |
name: test-results-python | |
path: ${{ env.INSTALL_TEST_DIR }}/TEST*.xml | |
if-no-files-found: 'error' | |
CPU_Functional_Tests: | |
needs: Build | |
defaults: | |
run: | |
shell: bash | |
# runs-on: ubuntu-latest-16-cores | |
runs-on: ubuntu-latest | |
container: | |
image: akashchi/ubuntu:python_311 | |
env: | |
INSTALL_DIR: /openvino/install | |
INSTALL_TEST_DIR: /openvino/install/tests | |
steps: | |
- name: Create Directories | |
run: mkdir -p ${{ env.INSTALL_DIR }} ${{ env.INSTALL_TEST_DIR }} | |
- name: Download OpenVINO package | |
uses: actions/download-artifact@v3 | |
with: | |
name: openvino_package | |
path: ${{ env.INSTALL_DIR }} | |
- name: Download OpenVINO tests package | |
uses: actions/download-artifact@v3 | |
with: | |
name: openvino_tests | |
path: ${{ env.INSTALL_TEST_DIR }} | |
- name: Extract OpenVINO packages | |
run: | | |
pushd ${{ env.INSTALL_DIR }} | |
tar -xzf openvino_package.tar.gz -C ${{ env.INSTALL_DIR }} && rm openvino_package.tar.gz || exit 1 | |
popd | |
pushd ${{ env.INSTALL_TEST_DIR }} | |
tar -xzf openvino_tests.tar.gz -C ${{ env.INSTALL_DIR }} && rm openvino_tests.tar.gz || exit 1 | |
popd | |
- name: Intel CPU plugin func tests | |
run: | | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
${{ env.INSTALL_TEST_DIR }}/ov_cpu_func_tests --gtest_print_time=1 --gtest_filter=*smoke* --gtest_output=xml:"${{ env.INSTALL_TEST_DIR }}/TEST-CPUFuncTests.xml" | |
- name: Upload Test Results | |
uses: actions/upload-artifact@v3 | |
if: ${{ always() }} | |
with: | |
name: test-results-functional-cpu | |
path: ${{ env.INSTALL_TEST_DIR }}/TEST*.xml | |
if-no-files-found: 'error' | |
# GPU_Functional_Tests: | |
# needs: Build | |
# if: ${{ always() }} | |
# defaults: | |
# run: | |
# shell: bash | |
# runs-on: ['self-hosted', 'linux', 'coverage'] | |
# container: | |
# image: akashchi/ubuntu:python_311 | |
# options: --device /dev/dri --device-cgroup-rule="c 189:* rmw" | |
# env: | |
# INSTALL_DIR: /github/install | |
# INSTALL_TEST_DIR: /github/install/tests | |
# GTEST_PARALLEL_DIR: /github/gtest_parallel | |
# | |
# steps: | |
# - name: Create Directories | |
# run: | | |
# mkdir -p ${{ env.INSTALL_DIR }} ${{ env.INSTALL_TEST_DIR }} ${{ env.GTEST_PARALLEL_DIR }} | |
# | |
# - name: Download OpenVINO package | |
# uses: actions/download-artifact@v3 | |
# with: | |
# name: openvino_package | |
# path: ${{ env.INSTALL_DIR }} | |
# | |
# - name: Download OpenVINO tests package | |
# uses: actions/download-artifact@v3 | |
# with: | |
# name: openvino_tests | |
# path: ${{ env.INSTALL_TEST_DIR }} | |
# | |
# - name: Extract OpenVINO packages | |
# run: | | |
# pushd ${{ env.INSTALL_DIR }} | |
# tar -xzf openvino_package.tar.gz -C ${{ env.INSTALL_DIR }} && rm openvino_package.tar.gz || exit 1 | |
# popd | |
# pushd ${{ env.INSTALL_TEST_DIR }} | |
# tar -xzf openvino_tests.tar.gz -C ${{ env.INSTALL_DIR }} && rm openvino_tests.tar.gz || exit 1 | |
# popd | |
# | |
# - name: Clone gtest_parallel | |
# run: | | |
# cd /github && git clone https://github.com/google/gtest-parallel.git ${{ env.GTEST_PARALLEL_DIR }} | |
# - name: Intel GPU plugin func tests | |
# run: | | |
# source ${{ env.INSTALL_DIR }}/setupvars.sh | |
# export OV_GPU_Verbose=4 | |
# python3 ${{ env.GTEST_PARALLEL_DIR }}/gtest_parallel.py ${{ env.INSTALL_TEST_DIR }}/ov_gpu_func_tests --gtest_filter=*smoke* | |
# # ${{ env.INSTALL_TEST_DIR }}/ov_gpu_func_tests --gtest_print_time=1 --gtest_filter=*smoke* --gtest_output=xml:"${{ env.INSTALL_TEST_DIR }}/TEST-GPUFuncTests.xml" |