Bump actions/checkout from 3 to 4 #23
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 (Ubuntu 22.04, Python 3.11) | |
on: | |
workflow_dispatch: | |
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 }}-linux | |
cancel-in-progress: true | |
jobs: | |
Build: | |
defaults: | |
run: | |
shell: bash | |
runs-on: ubuntu-latest-8-cores | |
env: | |
CMAKE_BUILD_TYPE: 'Release' | |
CMAKE_GENERATOR: 'Ninja' | |
CMAKE_CXX_COMPILER_LAUNCHER: ccache | |
CMAKE_C_COMPILER_LAUNCHER: ccache | |
OPENVINO_REPO: ${{ github.workspace }}/openvino | |
OPENVINO_CONTRIB_REPO: ${{ github.workspace }}/openvino_contrib | |
INSTALL_DIR: ${{ github.workspace }}/install | |
INSTALL_TEST_DIR: ${{ github.workspace }}/install/tests | |
SAMPLES_INSTALL_DIR: ${{ github.workspace }}/install/samples | |
LAYER_TESTS_INSTALL_DIR: ${{ github.workspace }}/install/tests/layer_tests | |
MODEL_HUB_TESTS_INSTALL_DIR: ${{ github.workspace }}/install/tests/model_hub_tests | |
BUILD_DIR: ${{ github.workspace }}/build | |
DATA_PATH: ${{ github.workspace }}/testdata | |
MODELS_PATH: ${{ github.workspace }}/testdata | |
OV_TEMP: ${{ github.workspace }}/openvino_temp | |
PYTHON_STATIC_ARGS: -m "not dynamic_library" | |
steps: | |
- name: Clone OpenVINO | |
uses: actions/checkout@v4 | |
with: | |
path: 'openvino' | |
submodules: 'recursive' | |
- name: Clone OpenVINO Contrib | |
uses: actions/checkout@v4 | |
with: | |
repository: 'openvinotoolkit/openvino_contrib' | |
path: 'openvino_contrib' | |
submodules: 'recursive' | |
- name: Clone testdata for C API tests | |
uses: actions/checkout@v4 | |
with: | |
repository: 'openvinotoolkit/testdata' | |
path: 'testdata' | |
submodules: 'recursive' | |
lfs: 'true' | |
# | |
# Dependencies | |
# | |
- name: Install build dependencies | |
run: | | |
sudo -E ${{ env.OPENVINO_REPO }}/install_build_dependencies.sh | |
sudo -E apt update | |
sudo -E apt --assume-yes install openjdk-11-jdk libbz2-dev clang unzip libpugixml-dev libtbb-dev intel-opencl-icd ocl-icd-opencl-dev opencl-headers | |
wget https://github.com/ninja-build/ninja/releases/download/v1.10.2/ninja-linux.zip | |
unzip ninja-linux.zip | |
sudo cp -v ninja /usr/local/bin/ | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: '3.11' | |
- 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: Setup ccache | |
uses: hendrikmuhs/[email protected] | |
with: | |
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' }} | |
verbose: 2 | |
key: ${{ github.job }}-linux | |
restore-keys: | | |
${{ github.job }}-linux | |
- name: Get tools versions | |
run: | | |
ninja --version || exit 1 | |
ccache --version || exit 1 | |
python3 --version || exit 1 | |
cmake --version || exit 1 | |
- 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: Cmake Model Hub Tests | |
run: cmake -GNinja -S ${{ env.OPENVINO_REPO }}/tests/model_hub_tests -B ${{ env.BUILD_DIR }}/model_hub_tests | |
- name: Build Layer Tests | |
run: cmake --build ${{ env.BUILD_DIR }}/layer_tests --parallel --config Release | |
- name: Build Model Hub Tests | |
run: cmake --build ${{ env.BUILD_DIR }}/model_hub_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 Model Hub Tests | |
run: cmake -DCOMPONENT=tests -DCMAKE_INSTALL_PREFIX=${{ env.INSTALL_DIR }} -P ${{ env.BUILD_DIR }}/model_hub_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 | |
# | |
# Tests | |
# | |
- name: Samples tests | |
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 }} | |
# Present in the "Build" job due to the fact that these tests require build directory | |
- name: ONNX frontend tests | |
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 | |
# | |
# Upload build artifacts | |
# | |
- 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-22.04 | |
env: | |
INSTALL_DIR: ${{ github.workspace }}/install | |
INSTALL_TEST_DIR: ${{ github.workspace }}/install/tests | |
steps: | |
- name: Create Directories | |
run: | | |
mkdir -p ${{ env.INSTALL_DIR }} ${{ env.INSTALL_TEST_DIR }} | |
# | |
# Dependencies | |
# | |
- name: Install dependencies | |
run: | | |
sudo -E apt update | |
sudo -E apt --assume-yes install openjdk-11-jdk libbz2-dev clang unzip libpugixml-dev libtbb-dev intel-opencl-icd ocl-icd-opencl-dev opencl-headers | |
- 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 | |
# | |
# Tests | |
# | |
- name: OpenVINO Core Unit Tests | |
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-OVCoreUT.xml | |
- name: OpenVINO Inference Functional Tests | |
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 | |
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 | |
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 | |
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 | |
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 | |
# Disabled in Azure: https://github.com/openvinotoolkit/openvino/blob/master/.ci/azure/linux.yml#L403 | |
# - name: PaddlePaddle frontend tests | |
# 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 | |
# Present in the "Build" job as these tests require build directory | |
# - name: ONNX frontend tests | |
# 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 | |
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 | |
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 | |
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 | |
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 | |
run: | | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
${{ env.INSTALL_TEST_DIR }}/ov_util_tests --gtest_print_time=1 \ | |
--gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-CommonUtilTests.xml | |
- name: Snippets func tests | |
run: | | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
${{ env.INSTALL_TEST_DIR }}/ov_snippets_func_tests --gtest_print_time=1 \ | |
--gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-SnippetsFuncTests.xml | |
- name: CPU plugin unit tests | |
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 | |
# Disabled in Azure: https://github.com/openvinotoolkit/openvino/blob/master/.ci/azure/linux.yml#L409 | |
# - name: GNA plugin unit tests | |
# 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 | |
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 | |
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 | |
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 | |
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 | |
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: Proxy Plugin Tests | |
run: | | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
${{ env.INSTALL_TEST_DIR }}/ov_proxy_plugin_tests --gtest_print_time=1 --gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-OVProxyTests.xml | |
- name: Hetero Func Tests | |
run: | | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
${{ env.INSTALL_TEST_DIR }}/ov_hetero_func_tests --gtest_print_time=1 --gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-OVHeteroFuncTests.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-22.04 | |
env: | |
OPENVINO_REPO: ${{ github.workspace }}/openvino | |
OPENVINO_CONTRIB_REPO: ${{ github.workspace }}/openvino_contrib | |
INSTALL_DIR: ${{ github.workspace }}/install | |
INSTALL_TEST_DIR: ${{ github.workspace }}/install/tests | |
SAMPLES_INSTALL_DIR: ${{ github.workspace }}/install/samples | |
LAYER_TESTS_INSTALL_DIR: ${{ github.workspace }}/install/tests/layer_tests | |
MODEL_HUB_TESTS_INSTALL_DIR: ${{ github.workspace }}/install/tests/model_hub_tests | |
BUILD_DIR: ${{ github.workspace }}/build | |
DATA_PATH: ${{ github.workspace }}/testdata | |
MODELS_PATH: ${{ github.workspace }}/testdata | |
OV_TEMP: ${{ github.workspace }}/openvino_temp | |
PYTHON_STATIC_ARGS: -m "not dynamic_library" | |
steps: | |
- name: Create Directories | |
run: | | |
mkdir -p ${{ env.INSTALL_DIR }} ${{ env.INSTALL_TEST_DIR }} | |
- name: Clone OpenVINO | |
uses: actions/checkout@v4 | |
with: | |
path: 'openvino' | |
submodules: 'recursive' | |
# | |
# Dependencies | |
# | |
- name: Install dependencies | |
run: | | |
sudo -E apt update | |
sudo -E apt --assume-yes install openjdk-11-jdk libbz2-dev clang unzip libpugixml-dev libtbb-dev intel-opencl-icd ocl-icd-opencl-dev opencl-headers | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: '3.11' | |
- 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 | |
# For torchvision to OpenVINO preprocessing converter | |
python3 -m pip install -r ${{ env.OPENVINO_REPO }}/src/bindings/python/src/openvino/preprocess/torchvision/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 | |
export LD_LIBRARY_PATH=${{ env.INSTALL_TEST_DIR }}:$LD_LIBRARY_PATH | |
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 | |
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 | |
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 | |
TEST_PRECISION: FP16 | |
- name: TensorFlow 1 Layer Tests - TF FE | |
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 | |
TEST_PRECISION: FP16 | |
- name: TensorFlow 2 Layer Tests - TF FE | |
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 | |
TEST_PRECISION: FP16 | |
- name: JAX Layer Tests - TF FE | |
run: | | |
python3 -m pip install -r ${{ env.LAYER_TESTS_INSTALL_DIR }}/requirements.txt | |
export PYTHONPATH=${{ env.LAYER_TESTS_INSTALL_DIR }}:$PYTHONPATH | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
python3 -m pytest ${{ env.LAYER_TESTS_INSTALL_DIR }}/jax_tests/ -m precommit --junitxml=${{ env.INSTALL_TEST_DIR }}/TEST-jax.xml | |
env: | |
TEST_DEVICE: CPU | |
- name: TensorFlow Hub Tests - TF FE | |
run: | | |
python3 -m pip install -r ${{ env.MODEL_HUB_TESTS_INSTALL_DIR }}/tf_hub_tests/requirements.txt | |
export PYTHONPATH=${{ env.MODEL_HUB_TESTS_INSTALL_DIR }}:$PYTHONPATH | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
python3 -m pytest ${{ env.MODEL_HUB_TESTS_INSTALL_DIR }}/tf_hub_tests/ -m precommit --junitxml=${{ env.INSTALL_TEST_DIR }}/TEST-tf_hub_tf_fe.xml | |
env: | |
TEST_DEVICE: CPU | |
- name: TensorFlow 1 Layer Tests - Legacy FE | |
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 | |
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 | |
TEST_PRECISION: FP16 | |
- name: TensorFlow Lite Layer Tests - TFL FE | |
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 | |
TEST_PRECISION: FP16 | |
- name: MO Python API Tests | |
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 | |
TEST_PRECISION: FP16 | |
- name: Python Frontend tests | |
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: Conversion UT | |
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 -s ${{ env.OPENVINO_REPO }}/tools/ovc/unit_tests --junitxml=${{ env.INSTALL_TEST_DIR }}/TEST-OpenVinoConversion.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-4-cores | |
env: | |
INSTALL_DIR: ${{ github.workspace }}/install | |
INSTALL_TEST_DIR: ${{ github.workspace }}/install/tests | |
PARALLEL_TEST_SCRIPT: ${{ github.workspace }}/install/tests/functional_test_utils/run_parallel.py | |
PARALLEL_TEST_CACHE: ${{ github.workspace }}/install/tests/test_cache.lst | |
steps: | |
- name: Create Directories | |
run: mkdir -p ${{ env.INSTALL_DIR }} ${{ env.INSTALL_TEST_DIR }} | |
- name: Install dependencies | |
run: | | |
sudo -E apt update | |
sudo -E apt --assume-yes install openjdk-11-jdk libbz2-dev clang unzip libpugixml-dev libtbb-dev intel-opencl-icd ocl-icd-opencl-dev opencl-headers | |
- 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 dependencies | |
run: | | |
python3 -m pip install --upgrade pip | |
python3 -m pip install -r ${{ env.INSTALL_TEST_DIR }}/functional_test_utils/requirements.txt | |
- name: Cache Tests Execution Time | |
id: tests-functional-cpu-cache | |
uses: actions/cache@v3 | |
with: | |
path: ${{ env.PARALLEL_TEST_CACHE }} | |
key: ${{ runner.os }}-tests-functional-cpu-cache | |
- name: Intel CPU plugin func tests (parallel) | |
run: | | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
python3 ${{ env.PARALLEL_TEST_SCRIPT }} -e ${{ env.INSTALL_TEST_DIR }}/ov_cpu_func_tests -c ${{ env.PARALLEL_TEST_CACHE }} -w ${{ env.INSTALL_TEST_DIR }} -s suite -rf 0 -- --gtest_print_time=1 --gtest_filter=*smoke* | |
timeout-minutes: 25 | |
- name: Upload Test Results | |
uses: actions/upload-artifact@v3 | |
if: ${{ always() }} | |
with: | |
name: test-results-functional-cpu | |
path: | | |
${{ env.INSTALL_TEST_DIR }}/TEST*.xml | |
${{ env.INSTALL_TEST_DIR }}/logs/failed/*.log | |
${{ env.INSTALL_TEST_DIR }}/logs/crashed/*.log | |
${{ env.INSTALL_TEST_DIR }}/logs/hanged/*.log | |
${{ env.INSTALL_TEST_DIR }}/logs/interapted/*.log | |
${{ env.INSTALL_TEST_DIR }}/logs/disabled_tests.log | |
if-no-files-found: 'error' |