Bump onnx from 1.14.1 to 1.15.0 in /src/bindings/python #96
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: Linux (Ubuntu 20.04, Python 3.11) | |
on: | |
schedule: | |
# at 00:00 on Wednesday and Saturday | |
- cron: '0 0 * * 3,6' | |
workflow_dispatch: | |
pull_request: | |
paths: | |
- '**' | |
- '!**/docs/**' | |
- '!docs/**' | |
- 'docs/snippets/**' | |
- '!**/**.md' | |
- '!**.md' | |
push: | |
paths: | |
- '**' | |
- '!docs/**' | |
- '!**/docs/**' | |
- 'docs/snippets/**' | |
- '!**/**.md' | |
- '!**.md' | |
branches: | |
- master | |
- 'releases/**' | |
concurrency: | |
# github.ref is not unique in post-commit | |
group: ${{ github.event_name == 'push' && github.run_id || github.ref }}-linux | |
cancel-in-progress: true | |
env: | |
PIP_CACHE_PATH: /mount/caches/pip/linux | |
PYTHON_VERSION: '3.11' | |
jobs: | |
Smart_CI: | |
runs-on: ubuntu-latest | |
outputs: | |
affected_components: "${{ steps.smart_ci.outputs.affected_components }}" | |
steps: | |
- name: checkout action | |
uses: actions/checkout@v4 | |
with: | |
sparse-checkout: .github/actions/smart-ci | |
- name: Get affected components | |
id: smart_ci | |
uses: ./.github/actions/smart-ci | |
with: | |
repository: ${{ github.repository }} | |
pr: ${{ github.event.number }} | |
commit_sha: ${{ github.sha }} | |
component_pattern: "category: (.*)" | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
- name: Show affected components | |
run: | | |
echo "${{ toJSON(steps.smart_ci.outputs.affected_components) }}" | |
shell: bash | |
Build: | |
timeout-minutes: 150 | |
defaults: | |
run: | |
shell: bash | |
runs-on: aks-linux-16-cores | |
container: | |
image: openvinogithubactions.azurecr.io/dockerhub/ubuntu:20.04 | |
volumes: | |
- /mount/caches:/mount/caches | |
options: -e SCCACHE_AZURE_BLOB_CONTAINER -e SCCACHE_AZURE_CONNECTION_STRING | |
env: | |
DEBIAN_FRONTEND: noninteractive # to prevent apt-get from waiting user input | |
CMAKE_BUILD_TYPE: 'Release' | |
CMAKE_GENERATOR: 'Ninja Multi-Config' | |
CMAKE_CXX_COMPILER_LAUNCHER: sccache | |
CMAKE_C_COMPILER_LAUNCHER: sccache | |
GITHUB_WORKSPACE: '/__w/openvino/openvino' | |
OPENVINO_REPO: /__w/openvino/openvino/openvino | |
OPENVINO_CONTRIB_REPO: /__w/openvino/openvino/openvino_contrib | |
INSTALL_DIR: /__w/openvino/openvino/openvino_install | |
INSTALL_TEST_DIR: /__w/openvino/openvino/tests_install | |
DEVELOPER_PACKAGE_DIR: /__w/openvino/openvino/developer_package_install | |
BUILD_DIR: /__w/openvino/openvino/openvino_build | |
SCCACHE_AZURE_KEY_PREFIX: ubuntu20_x86_64_Release | |
ONNX_RUNTIME_UTILS: /__w/openvino/openvino/openvino/.ci/azure/ci_utils/onnxruntime | |
steps: | |
- name: Install git | |
run: | | |
apt-get update | |
apt-get install --assume-yes --no-install-recommends git ca-certificates | |
- name: Clone OpenVINO | |
uses: actions/checkout@v4 | |
with: | |
path: ${{ env.OPENVINO_REPO }} | |
submodules: 'true' | |
- name: Clone OpenVINO Contrib | |
uses: actions/checkout@v4 | |
with: | |
repository: 'openvinotoolkit/openvino_contrib' | |
path: ${{ env.OPENVINO_CONTRIB_REPO }} | |
submodules: 'true' | |
ref: 'master' | |
# | |
# Print system info | |
# | |
- name: System info | |
uses: ./openvino/.github/actions/system_info | |
# | |
# Dependencies | |
# | |
- name: Install build dependencies | |
run: | | |
bash ${OPENVINO_REPO}/install_build_dependencies.sh | |
# default-jdk - Java API | |
apt install --assume-yes --no-install-recommends default-jdk | |
- name: Install sccache | |
uses: mozilla-actions/[email protected] | |
with: | |
version: "v0.5.4" | |
- name: Setup Python ${{ env.PYTHON_VERSION }} | |
uses: ./openvino/.github/actions/setup_python | |
with: | |
version: ${{ env.PYTHON_VERSION }} | |
pip-cache-path: ${{ env.PIP_CACHE_PATH }} | |
should-setup-pip-paths: 'true' | |
self-hosted-runner: 'true' | |
show-cache-info: 'true' | |
- name: Install python dependencies | |
run: | | |
# For Python API: build and wheel packaging | |
python3 -m pip install -r ${OPENVINO_REPO}/src/bindings/python/wheel/requirements-dev.txt | |
python3 -m pip install -r ${OPENVINO_REPO}/src/bindings/python/src/compatibility/openvino/requirements-dev.txt | |
# For running ONNX frontend unit tests | |
python3 -m pip install --force-reinstall -r ${OPENVINO_REPO}/src/frontends/onnx/tests/requirements.txt | |
# For running TensorFlow frontend unit tests | |
python3 -m pip install -r ${OPENVINO_REPO}/src/frontends/tensorflow/tests/requirements.txt | |
# For running TensorFlow Lite frontend unit tests | |
python3 -m pip install -r ${OPENVINO_REPO}/src/frontends/tensorflow_lite/tests/requirements.txt | |
# For running Paddle frontend unit tests | |
python3 -m pip install -r ${OPENVINO_REPO}/src/frontends/paddle/tests/requirements.txt | |
# | |
# Build | |
# | |
- name: CMake configure - OpenVINO | |
run: | | |
cmake \ | |
-G "${{ env.CMAKE_GENERATOR }}" \ | |
-DENABLE_CPPLINT=OFF \ | |
-DENABLE_NCC_STYLE=OFF \ | |
-DENABLE_TESTS=ON \ | |
-DENABLE_STRICT_DEPENDENCIES=OFF \ | |
-DENABLE_SYSTEM_TBB=ON \ | |
-DENABLE_SYSTEM_OPENCL=ON \ | |
-DCMAKE_VERBOSE_MAKEFILE=ON \ | |
-DCPACK_GENERATOR=TGZ \ | |
-DCMAKE_COMPILE_WARNING_AS_ERROR=ON \ | |
-DCMAKE_CXX_COMPILER_LAUNCHER=${{ env.CMAKE_CXX_COMPILER_LAUNCHER }} \ | |
-DCMAKE_C_COMPILER_LAUNCHER=${{ env.CMAKE_C_COMPILER_LAUNCHER }} \ | |
-S ${OPENVINO_REPO} \ | |
-B ${BUILD_DIR} | |
- name: Clean sccache stats | |
run: sccache --zero-stats | |
- name: Cmake build - OpenVINO | |
run: cmake --build ${BUILD_DIR} --parallel --config ${{ env.CMAKE_BUILD_TYPE }} | |
- name: Show sccache stats | |
run: ${SCCACHE_PATH} --show-stats | |
- name: Cmake install - OpenVINO | |
run: | | |
cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} -P ${BUILD_DIR}/cmake_install.cmake | |
cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_TEST_DIR} -DCOMPONENT=tests -P ${BUILD_DIR}/cmake_install.cmake | |
cmake -DCMAKE_INSTALL_PREFIX=${DEVELOPER_PACKAGE_DIR} -DCOMPONENT=developer_package -P ${BUILD_DIR}/cmake_install.cmake | |
cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} -DCOMPONENT=python_wheels -P ${BUILD_DIR}/cmake_install.cmake | |
- name: Pack Artifacts | |
run: | | |
# Add the ONNX Runtime version and skip tests list to the archive to use in the ONNX Runtime Job | |
# w/o the need to checkout repository | |
cp -R ${ONNX_RUNTIME_UTILS} ${INSTALL_DIR} | |
pushd ${INSTALL_DIR} | |
tar -czvf ${BUILD_DIR}/openvino_package.tar.gz * | |
popd | |
pushd ${DEVELOPER_PACKAGE_DIR} | |
tar -czvf ${BUILD_DIR}/openvino_developer_package.tar.gz * | |
popd | |
pushd ${INSTALL_TEST_DIR} | |
tar -czvf ${BUILD_DIR}/openvino_tests.tar.gz * | |
popd | |
- name: Build Debian packages | |
run: | | |
/usr/bin/python3.8 -m pip install -U pip | |
/usr/bin/python3.8 -m pip install -r ${OPENVINO_REPO}/src/bindings/python/wheel/requirements-dev.txt | |
/usr/bin/python3.8 -m pip install -r ${OPENVINO_REPO}/src/bindings/python/src/compatibility/openvino/requirements-dev.txt | |
cmake -UPYTHON* \ | |
-DENABLE_PYTHON_PACKAGING=ON \ | |
-DENABLE_TESTS=OFF \ | |
-DPython3_EXECUTABLE=/usr/bin/python3.8 \ | |
-DCPACK_GENERATOR=DEB \ | |
${BUILD_DIR} | |
cmake --build ${BUILD_DIR} --parallel --config ${{ env.CMAKE_BUILD_TYPE }} --target package | |
- name: Cmake & Build - OpenVINO Contrib | |
run: | | |
cmake \ | |
-DBUILD_nvidia_plugin=OFF \ | |
-DCUSTOM_OPERATIONS="calculate_grid;complex_mul;fft;grid_sample;sparse_conv;sparse_conv_transpose" \ | |
-DOPENVINO_EXTRA_MODULES=${OPENVINO_CONTRIB_REPO}/modules \ | |
-S ${OPENVINO_REPO} \ | |
-B ${BUILD_DIR} | |
cmake --build ${BUILD_DIR} --parallel --config ${{ env.CMAKE_BUILD_TYPE }} | |
# | |
# 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 developer package | |
if: ${{ always() }} | |
uses: actions/upload-artifact@v3 | |
with: | |
name: openvino_developer_package | |
path: ${{ env.BUILD_DIR }}/openvino_developer_package.tar.gz | |
if-no-files-found: 'error' | |
- name: Upload openvino debian packages | |
if: ${{ always() }} | |
uses: actions/upload-artifact@v3 | |
with: | |
name: openvino_debian_packages | |
path: ${{ env.BUILD_DIR }}/*.deb | |
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' | |
Debian_Packages: | |
name: Debian Packages | |
needs: Build | |
timeout-minutes: 5 | |
defaults: | |
run: | |
shell: bash | |
runs-on: ubuntu-20.04 | |
container: | |
image: ubuntu:20.04 | |
env: | |
DEBIAN_FRONTEND: noninteractive # to prevent apt-get from waiting user input | |
DEBIAN_PACKAGES_DIR: /__w/openvino/packages/ | |
steps: | |
- name: Download OpenVINO debian packages | |
uses: actions/download-artifact@v3 | |
with: | |
name: openvino_debian_packages | |
path: ${{ env.DEBIAN_PACKAGES_DIR }} | |
- name: Install debian packages & check conflicts | |
run: | | |
apt-get update -y | |
# Install debian packages from previous release | |
apt-get install --no-install-recommends -y gnupg wget ca-certificates | |
wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | |
apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | |
echo "deb https://apt.repos.intel.com/openvino/2023 ubuntu20 main" | tee /etc/apt/sources.list.d/intel-openvino-2023.list | |
apt-get update -y | |
apt-get install -y openvino | |
# install our local one and make sure the conflicts are resolved | |
apt-get install --no-install-recommends -y dpkg-dev | |
dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz | |
echo "deb [trusted=yes] file:${DEBIAN_PACKAGES_DIR} ./" | tee /etc/apt/sources.list.d/openvino-local.list | |
apt-get update -y | |
apt-get install openvino -y | |
working-directory: ${{ env.DEBIAN_PACKAGES_DIR }} | |
- name: Test debian packages | |
run: | | |
/usr/share/openvino/samples/cpp/build_samples.sh | |
/usr/share/openvino/samples/c/build_samples.sh | |
~/openvino_cpp_samples_build/intel64/Release/hello_query_device | |
python3 /usr/share/openvino/samples/python/hello_query_device/hello_query_device.py | |
python3 -c 'from openvino import Core; Core().get_property("CPU", "AVAILABLE_DEVICES")' | |
python3 -c 'from openvino import Core; Core().get_property("GPU", "AVAILABLE_DEVICES")' | |
python3 -c 'from openvino import Core; Core().get_property("AUTO", "SUPPORTED_METRICS")' | |
python3 -c 'from openvino import Core; Core().get_property("MULTI", "SUPPORTED_METRICS")' | |
python3 -c 'from openvino import Core; Core().get_property("HETERO", "SUPPORTED_METRICS")' | |
python3 -c 'from openvino import Core; Core().get_property("BATCH", "SUPPORTED_METRICS")' | |
python3 -c 'from openvino.frontend import FrontEndManager; assert len(FrontEndManager().get_available_front_ends()) == 6' | |
benchmark_app --help | |
ovc --help | |
Samples: | |
needs: [Build, Smart_CI] | |
timeout-minutes: 20 | |
defaults: | |
run: | |
shell: bash | |
runs-on: ubuntu-20.04 | |
container: | |
image: ubuntu:20.04 | |
env: | |
DEBIAN_FRONTEND: noninteractive # to prevent apt-get from waiting user input | |
INSTALL_DIR: /__w/openvino/openvino/install | |
INSTALL_TEST_DIR: /__w/openvino/openvino/install/tests | |
BUILD_DIR: /__w/openvino/openvino/build | |
if: fromJSON(needs.smart_ci.outputs.affected_components).samples | |
steps: | |
- 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 ${INSTALL_DIR} | |
tar -xzf openvino_package.tar.gz -C ${INSTALL_DIR} | |
popd | |
pushd ${INSTALL_TEST_DIR} | |
tar -xzf openvino_tests.tar.gz -C ${INSTALL_DIR} | |
popd | |
- name: Install OpenVINO dependencies | |
run: ${INSTALL_DIR}/install_dependencies/install_openvino_dependencies.sh -c=core -c=dev -y | |
- name: Fetch setup_python action | |
uses: actions/checkout@v4 | |
with: | |
sparse-checkout: | | |
.github/actions/setup_python/action.yml | |
sparse-checkout-cone-mode: false | |
path: 'openvino' | |
- name: Setup Python ${{ env.PYTHON_VERSION }} | |
uses: ./openvino/.github/actions/setup_python | |
with: | |
version: ${{ env.PYTHON_VERSION }} | |
should-setup-pip-paths: 'false' | |
self-hosted-runner: 'false' | |
- name: Build cpp samples - GCC | |
run: ${INSTALL_DIR}/samples/cpp/build_samples.sh -i ${INSTALL_DIR} -b ${BUILD_DIR}/cpp_samples | |
env: | |
CMAKE_COMPILE_WARNING_AS_ERROR: 'ON' | |
- name: Build cpp samples - Clang | |
run: | | |
apt-get install -y clang | |
${INSTALL_DIR}/samples/cpp/build_samples.sh -i ${INSTALL_DIR} -b ${BUILD_DIR}/cpp_samples_clang | |
env: | |
CMAKE_COMPILE_WARNING_AS_ERROR: 'ON' | |
CC: clang | |
CXX: clang++ | |
- name: Build c samples | |
run: ${INSTALL_DIR}/samples/c/build_samples.sh -i ${INSTALL_DIR} -b ${BUILD_DIR}/c_samples | |
env: | |
CMAKE_COMPILE_WARNING_AS_ERROR: 'ON' | |
# | |
# Tests | |
# | |
- name: Samples tests | |
if: fromJSON(needs.smart_ci.outputs.affected_components).samples.test | |
run: | | |
export WORKSPACE=${INSTALL_DIR} | |
export IE_APP_PATH=${INSTALL_DIR}/samples_bin | |
export IE_APP_PYTHON_PATH=${INSTALL_DIR}/samples/python | |
export SHARE=${INSTALL_TEST_DIR}/smoke_tests/samples_smoke_tests_data | |
python3 -m pip install --ignore-installed PyYAML -r ${INSTALL_TEST_DIR}/smoke_tests/requirements.txt | |
export LD_LIBRARY_PATH=${IE_APP_PATH}:$LD_LIBRARY_PATH | |
source ${INSTALL_DIR}/setupvars.sh | |
python3 -m pytest -sv ${INSTALL_TEST_DIR}/smoke_tests \ | |
--env_conf ${INSTALL_TEST_DIR}/smoke_tests/env_config.yml \ | |
--junitxml=${INSTALL_TEST_DIR}/TEST-SamplesSmokeTests.xml | |
- name: Upload Test Results | |
uses: actions/upload-artifact@v3 | |
if: ${{ !cancelled() }} | |
with: | |
name: test-results-samples | |
path: ${{ env.INSTALL_TEST_DIR }}/TEST*.xml | |
if-no-files-found: 'warn' | |
Conformance: | |
needs: [Build, Smart_CI] | |
timeout-minutes: ${{ matrix.TEST_TYPE == 'API' && 5 || 15 }} | |
defaults: | |
run: | |
shell: bash | |
runs-on: ubuntu-20.04-8-cores | |
strategy: | |
max-parallel: 2 | |
fail-fast: false | |
matrix: | |
include: | |
# 'OP' for Opset, 'API' for API | |
- TEST_TYPE: 'OP' | |
- TEST_TYPE: 'API' | |
env: | |
INSTALL_DIR: ${{ github.workspace }}/install | |
INSTALL_TEST_DIR: ${{ github.workspace }}/install/tests | |
CONFORMANCE_TOOLS_DIR: ${{ github.workspace }}/install/tests/functional_test_utils/layer_tests_summary | |
CONFORMANCE_ARTIFACTS_DIR: ${{ github.workspace }}/install/conformance_artifacts | |
TEST_DEVICE: 'CPU' | |
if: fromJSON(needs.smart_ci.outputs.affected_components).CPU.test | |
steps: | |
- name: Create Directories | |
run: | | |
mkdir -p ${CONFORMANCE_ARTIFACTS_DIR} | |
# | |
# Dependencies | |
# | |
- 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 ${INSTALL_DIR} | |
tar -xzf openvino_package.tar.gz -C ${INSTALL_DIR} | |
popd | |
pushd ${INSTALL_TEST_DIR} | |
tar -xzf openvino_tests.tar.gz -C ${INSTALL_DIR} | |
popd | |
- name: Fetch setup_python action | |
uses: actions/checkout@v4 | |
with: | |
sparse-checkout: | | |
.github/actions/setup_python/action.yml | |
sparse-checkout-cone-mode: false | |
path: 'openvino' | |
- name: Setup Python ${{ env.PYTHON_VERSION }} | |
uses: ./openvino/.github/actions/setup_python | |
with: | |
version: ${{ env.PYTHON_VERSION }} | |
should-setup-pip-paths: 'false' | |
self-hosted-runner: 'false' | |
- name: Install Dependencies | |
run: | | |
sudo -E ${INSTALL_DIR}/install_dependencies/install_openvino_dependencies.sh -c=core -y | |
python3 -m pip install -r ${CONFORMANCE_TOOLS_DIR}/requirements.txt | |
# | |
# Tests | |
# | |
- name: Conformance Tests | |
run: | | |
source ${INSTALL_DIR}/setupvars.sh | |
python3 ${CONFORMANCE_TOOLS_DIR}/run_conformance.py -ov=${INSTALL_DIR}/tests \ | |
-d=${TEST_DEVICE} \ | |
-t=${{ matrix.TEST_TYPE }} \ | |
-w=${CONFORMANCE_ARTIFACTS_DIR} \ | |
-f=${CONFORMANCE_TOOLS_DIR}/skip_configs/${TEST_DEVICE}/expected_failures_${{ matrix.TEST_TYPE }}.csv | |
- name: Pack Conformance Artifacts | |
if: ${{ always() }} | |
run: | | |
pushd ${CONFORMANCE_ARTIFACTS_DIR} | |
tar -czvf ${CONFORMANCE_ARTIFACTS_DIR}/conformance_artifacts.tar.gz * | |
popd | |
- name: Upload Conformance Artifacts | |
if: ${{ always() }} | |
uses: actions/upload-artifact@v3 | |
with: | |
name: conformance_artifacts_${{ matrix.TEST_TYPE }}-${{ env.TEST_DEVICE }} | |
path: ${{ env.CONFORMANCE_ARTIFACTS_DIR }}/conformance_artifacts.tar.gz | |
if-no-files-found: 'error' | |
ONNX_Runtime: | |
name: ONNX Runtime Integration | |
needs: Build | |
timeout-minutes: 10 | |
defaults: | |
run: | |
shell: bash | |
runs-on: aks-linux-16-cores | |
container: | |
image: openvinogithubactions.azurecr.io/dockerhub/ubuntu:20.04 | |
volumes: | |
- /mount/caches:/mount/caches | |
options: -e SCCACHE_AZURE_BLOB_CONTAINER -e SCCACHE_AZURE_CONNECTION_STRING | |
env: | |
DEBIAN_FRONTEND: noninteractive # to prevent apt-get from waiting user input | |
CMAKE_GENERATOR: 'Ninja Multi-Config' | |
CMAKE_CXX_COMPILER_LAUNCHER: sccache | |
CMAKE_C_COMPILER_LAUNCHER: sccache | |
OPENVINO_REPO: /__w/openvino/openvino/openvino | |
INSTALL_DIR: /__w/openvino/openvino/install | |
SCCACHE_AZURE_KEY_PREFIX: ubuntu20_x86_64_onnxruntime | |
ONNX_RUNTIME_REPO: /__w/openvino/openvino/onnxruntime | |
ONNX_RUNTIME_UTILS: /__w/openvino/openvino/install/onnxruntime | |
ONNX_RUNTIME_BUILD_DIR: /__w/openvino/openvino/onnxruntime/build | |
steps: | |
- name: Fetch install_build_dependencies.sh and setup_python action | |
uses: actions/checkout@v4 | |
with: | |
sparse-checkout: | | |
install_build_dependencies.sh | |
.github/actions/setup_python/action.yml | |
sparse-checkout-cone-mode: false | |
path: ${{ env.OPENVINO_REPO }} | |
- name: Install git | |
run: | | |
apt-get update | |
apt-get install --assume-yes --no-install-recommends git ca-certificates | |
- name: Setup Python ${{ env.PYTHON_VERSION }} | |
uses: ./openvino/.github/actions/setup_python | |
with: | |
version: ${{ env.PYTHON_VERSION }} | |
should-setup-pip-paths: 'false' | |
# | |
# Initialize OpenVINO | |
# | |
- name: Download OpenVINO package | |
uses: actions/download-artifact@v3 | |
with: | |
name: openvino_package | |
path: ${{ env.INSTALL_DIR }} | |
- name: Extract OpenVINO package | |
run: | | |
pushd ${INSTALL_DIR} | |
tar -xzf openvino_package.tar.gz -C ${INSTALL_DIR} | |
popd | |
- name: Install OpenVINO dependencies | |
run: ${INSTALL_DIR}/install_dependencies/install_openvino_dependencies.sh -c=core -c=dev -y | |
- name: Clone ONNX Runtime | |
run: | | |
branch=`tr -s '\n ' < ${ONNX_RUNTIME_UTILS}/version` | |
git clone --branch $branch --single-branch --recursive https://github.com/microsoft/onnxruntime.git ${ONNX_RUNTIME_REPO} | |
# | |
# Tests | |
# | |
- name: Install Build Dependencies | |
run: bash ${OPENVINO_REPO}/install_build_dependencies.sh | |
- name: Install sccache | |
uses: mozilla-actions/[email protected] | |
with: | |
version: "v0.5.4" | |
- name: Build Lin ONNX Runtime | |
run: | | |
source ${INSTALL_DIR}/setupvars.sh | |
${ONNX_RUNTIME_REPO}/build.sh \ | |
--config RelWithDebInfo \ | |
--use_openvino CPU_FP32 \ | |
--build_shared_lib \ | |
--parallel \ | |
--skip_tests \ | |
--compile_no_warning_as_error \ | |
--build_dir ${ONNX_RUNTIME_BUILD_DIR} | |
env: | |
CXXFLAGS: "-Wno-error=deprecated-declarations" | |
- name: Show sccache stats | |
run: ${SCCACHE_PATH} --show-stats | |
- name: Run onnxruntime_test_all | |
run: | | |
source ${INSTALL_DIR}/setupvars.sh | |
skip_tests=$(tr -s '\n ' ':' < ${ONNX_RUNTIME_UTILS}/skip_tests) | |
./onnxruntime_test_all --gtest_filter=-$skip_tests | |
working-directory: ${{ env.ONNX_RUNTIME_BUILD_DIR }}/RelWithDebInfo/RelWithDebInfo | |
- name: Run onnxruntime_shared_lib_test | |
run: | | |
source ${INSTALL_DIR}/setupvars.sh | |
./onnxruntime_shared_lib_test --gtest_filter=-CApiTest.test_custom_op_openvino_wrapper_library | |
working-directory: ${{ env.ONNX_RUNTIME_BUILD_DIR }}/RelWithDebInfo/RelWithDebInfo | |
- name: Run onnxruntime_global_thread_pools_test | |
run: | | |
source ${INSTALL_DIR}/setupvars.sh | |
./onnxruntime_global_thread_pools_test | |
working-directory: ${{ env.ONNX_RUNTIME_BUILD_DIR }}/RelWithDebInfo/RelWithDebInfo | |
- name: Run onnxruntime_api_tests_without_env | |
run: | | |
source ${INSTALL_DIR}/setupvars.sh | |
./onnxruntime_api_tests_without_env | |
working-directory: ${{ env.ONNX_RUNTIME_BUILD_DIR }}/RelWithDebInfo/RelWithDebInfo | |
- name: Run pytorch-converted tests | |
run: | | |
source ${INSTALL_DIR}/setupvars.sh | |
./onnx_test_runner "${ONNX_RUNTIME_REPO}/cmake/external/onnx/onnx/backend/test/data/pytorch-converted" | |
working-directory: ${{ env.ONNX_RUNTIME_BUILD_DIR }}/RelWithDebInfo/RelWithDebInfo | |
- name: Run pytorch-operator tests | |
run: | | |
source ${INSTALL_DIR}/setupvars.sh | |
./onnx_test_runner "${ONNX_RUNTIME_REPO}/cmake/external/onnx/onnx/backend/test/data/pytorch-operator" | |
working-directory: ${{ env.ONNX_RUNTIME_BUILD_DIR }}/RelWithDebInfo/RelWithDebInfo | |
CXX_Unit_Tests: | |
name: C++ unit tests | |
needs: [Build, Smart_CI] | |
timeout-minutes: 20 | |
defaults: | |
run: | |
shell: bash | |
runs-on: aks-linux-4-cores-16gb | |
container: | |
image: openvinogithubactions.azurecr.io/dockerhub/ubuntu:20.04 | |
env: | |
INSTALL_DIR: /__w/openvino/openvino/install | |
INSTALL_TEST_DIR: /__w/openvino/openvino/install/tests | |
steps: | |
- 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 ${INSTALL_DIR} | |
tar -xzf openvino_package.tar.gz -C ${INSTALL_DIR} | |
popd | |
pushd ${INSTALL_TEST_DIR} | |
tar -xzf openvino_tests.tar.gz -C ${INSTALL_DIR} | |
popd | |
- name: Install OpenVINO dependencies | |
run: ${INSTALL_DIR}/install_dependencies/install_openvino_dependencies.sh -c=core -c=gpu -y | |
# | |
# Tests | |
# | |
- name: OpenVINO Core Unit Tests | |
run: | | |
source ${INSTALL_DIR}/setupvars.sh | |
${INSTALL_TEST_DIR}/ov_core_unit_tests --gtest_print_time=1 --gtest_filter=-*IE_GPU* \ | |
--gtest_output=xml:${INSTALL_TEST_DIR}/TEST-OVCoreUT.xml | |
- name: OpenVINO Inference Functional Tests | |
run: | | |
source ${INSTALL_DIR}/setupvars.sh | |
${INSTALL_TEST_DIR}/ov_inference_functional_tests --gtest_print_time=1 \ | |
--gtest_output=xml:${INSTALL_TEST_DIR}/TEST-InferenceFunc.xml | |
- name: OpenVINO Inference Unit Tests | |
run: | | |
source ${INSTALL_DIR}/setupvars.sh | |
${INSTALL_TEST_DIR}/ov_inference_unit_tests --gtest_print_time=1 \ | |
--gtest_output=xml:${INSTALL_TEST_DIR}/TEST-InferenceUnit.xml | |
- name: Low Precision Transformations Tests | |
if: fromJSON(needs.smart_ci.outputs.affected_components).LP_transformations.test | |
run: | | |
source ${INSTALL_DIR}/setupvars.sh | |
${INSTALL_TEST_DIR}/ov_lp_transformations_tests --gtest_print_time=1 \ | |
--gtest_output=xml:${INSTALL_TEST_DIR}/TEST-LpTransformations.xml | |
- name: OpenVINO Conditional compilation tests | |
run: | | |
source ${INSTALL_DIR}/setupvars.sh | |
${INSTALL_TEST_DIR}/ov_conditional_compilation_tests --gtest_print_time=1 \ | |
--gtest_output=xml:${INSTALL_TEST_DIR}/TEST-ConditionalCompilation.xml | |
- name: IR frontend tests | |
if: fromJSON(needs.smart_ci.outputs.affected_components).IR_FE.test | |
run: | | |
source ${INSTALL_DIR}/setupvars.sh | |
${INSTALL_TEST_DIR}/ov_ir_frontend_tests --gtest_print_time=1 \ | |
--gtest_output=xml:${INSTALL_TEST_DIR}/TEST-IRFrontend.xml | |
- name: PaddlePaddle frontend tests | |
if: ${{ 'false' }} | |
run: | | |
source ${INSTALL_DIR}/setupvars.sh | |
${INSTALL_TEST_DIR}/paddle_tests --gtest_print_time=1 \ | |
--gtest_output=xml:${INSTALL_TEST_DIR}/TEST-PaddleTests.xml | |
- name: ONNX frontend tests | |
if: fromJSON(needs.smart_ci.outputs.affected_components).ONNX_FE.test | |
run: | | |
source ${INSTALL_DIR}/setupvars.sh | |
${INSTALL_TEST_DIR}/ov_onnx_frontend_tests --gtest_print_time=1 \ | |
--gtest_filter=-*IE_GPU* \ | |
--gtest_output=xml:${INSTALL_TEST_DIR}/TEST-ONNXFrontend.xml | |
- name: TensorFlow Common frontend tests | |
if: fromJSON(needs.smart_ci.outputs.affected_components).TF_FE.test || | |
fromJSON(needs.smart_ci.outputs.affected_components).TFL_FE.test | |
run: | | |
source ${INSTALL_DIR}/setupvars.sh | |
${INSTALL_TEST_DIR}/ov_tensorflow_common_tests --gtest_print_time=1 \ | |
--gtest_output=xml:${INSTALL_TEST_DIR}/TEST-TensorFlowCommonFrontend.xml | |
- name: TensorFlow frontend tests | |
if: fromJSON(needs.smart_ci.outputs.affected_components).TF_FE.test | |
run: | | |
source ${INSTALL_DIR}/setupvars.sh | |
${INSTALL_TEST_DIR}/ov_tensorflow_frontend_tests --gtest_print_time=1 \ | |
--gtest_output=xml:${INSTALL_TEST_DIR}/TEST-TensorFlowFrontend.xml | |
- name: TensorFlow Lite frontend tests | |
if: fromJSON(needs.smart_ci.outputs.affected_components).TFL_FE.test | |
run: | | |
source ${INSTALL_DIR}/setupvars.sh | |
${INSTALL_TEST_DIR}/ov_tensorflow_lite_frontend_tests --gtest_print_time=1 \ | |
--gtest_output=xml:${INSTALL_TEST_DIR}/TEST-TensorFlowLiteFrontend.xml | |
- name: Transformations func tests | |
if: fromJSON(needs.smart_ci.outputs.affected_components).transformations.test | |
run: | | |
source ${INSTALL_DIR}/setupvars.sh | |
${INSTALL_TEST_DIR}/ov_transformations_tests --gtest_print_time=1 \ | |
--gtest_output=xml:${INSTALL_TEST_DIR}/TEST-Transformations.xml | |
- name: Legacy Transformations func tests | |
if: fromJSON(needs.smart_ci.outputs.affected_components).transformations.test | |
run: | | |
source ${INSTALL_DIR}/setupvars.sh | |
${INSTALL_TEST_DIR}/ov_legacy_transformations_tests --gtest_print_time=1 \ | |
--gtest_output=xml:${INSTALL_TEST_DIR}/TEST-LegacyTransformations.xml | |
- name: Inference Engine 1.0 unit tests | |
run: | | |
source ${INSTALL_DIR}/setupvars.sh | |
${INSTALL_TEST_DIR}/InferenceEngineUnitTests --gtest_print_time=1 \ | |
--gtest_output=xml:${INSTALL_TEST_DIR}/TEST-InferenceEngineUnitTests.xml | |
- name: Common test utils tests | |
run: | | |
source ${INSTALL_DIR}/setupvars.sh | |
${INSTALL_TEST_DIR}/ov_util_tests --gtest_print_time=1 \ | |
--gtest_output=xml:${INSTALL_TEST_DIR}/TEST-CommonUtilTests.xml | |
- name: Snippets func tests | |
if: fromJSON(needs.smart_ci.outputs.affected_components).CPU.test | |
run: | | |
source ${INSTALL_DIR}/setupvars.sh | |
${INSTALL_TEST_DIR}/ov_snippets_func_tests --gtest_print_time=1 \ | |
--gtest_output=xml:${INSTALL_TEST_DIR}/TEST-SnippetsFuncTests.xml | |
- name: CPU plugin unit tests | |
if: fromJSON(needs.smart_ci.outputs.affected_components).CPU.test | |
run: | | |
source ${INSTALL_DIR}/setupvars.sh | |
${INSTALL_TEST_DIR}/ov_cpu_unit_tests --gtest_print_time=1 \ | |
--gtest_output=xml:${INSTALL_TEST_DIR}/TEST-CPUUnitTests.xml | |
- name: SubgraphsDumper tests | |
run: | | |
source ${INSTALL_DIR}/setupvars.sh | |
${INSTALL_TEST_DIR}/subgraphsDumperTests --gtest_print_time=1 \ | |
--gtest_output=xml:${INSTALL_TEST_DIR}/TEST-SubgraphsDumperTests.xml | |
- name: Template OpImpl tests | |
run: | | |
source ${INSTALL_DIR}/setupvars.sh | |
${INSTALL_TEST_DIR}/conformanceTests --gtest_print_time=1 --device=TEMPLATE --gtest_filter=*OpImpl*\ | |
--gtest_output=xml:${INSTALL_TEST_DIR}/TEST-OpImplTests.xml | |
- name: AUTO unit tests | |
if: fromJSON(needs.smart_ci.outputs.affected_components).AUTO.test | |
run: | | |
source ${INSTALL_DIR}/setupvars.sh | |
${INSTALL_TEST_DIR}/ov_auto_unit_tests --gtest_print_time=1 \ | |
--gtest_output=xml:${INSTALL_TEST_DIR}/TEST-ov_auto_unit_tests.xml | |
- name: AUTO func Tests | |
if: fromJSON(needs.smart_ci.outputs.affected_components).AUTO.test | |
run: | | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
${{ env.INSTALL_TEST_DIR }}/ov_auto_func_tests --gtest_print_time=1 \ | |
--gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-ov_auto_func_tests.xml | |
- name: Template plugin func tests | |
if: fromJSON(needs.smart_ci.outputs.affected_components).TEMPLATE.test | |
run: | | |
source ${INSTALL_DIR}/setupvars.sh | |
${INSTALL_TEST_DIR}/ov_template_func_tests --gtest_print_time=1 \ | |
--gtest_filter=*smoke* \ | |
--gtest_output=xml:${INSTALL_TEST_DIR}/TEST-TemplateFuncTests.xml | |
- name: Inference Engine C API tests | |
if: fromJSON(needs.smart_ci.outputs.affected_components).C_API.test | |
run: | | |
source ${INSTALL_DIR}/setupvars.sh | |
${INSTALL_TEST_DIR}/InferenceEngineCAPITests --gtest_print_time=1 \ | |
--gtest_output=xml:${INSTALL_TEST_DIR}/TEST-InferenceEngineCAPITests.xml | |
- name: OpenVINO C API tests | |
if: fromJSON(needs.smart_ci.outputs.affected_components).C_API.test | |
run: | | |
source ${INSTALL_DIR}/setupvars.sh | |
${INSTALL_TEST_DIR}/ov_capi_test --gtest_print_time=1 \ | |
--gtest_output=xml:${INSTALL_TEST_DIR}/TEST-OpenVINOCAPITests.xml | |
- name: AutoBatch unit tests | |
if: fromJSON(needs.smart_ci.outputs.affected_components).AUTO_BATCH.test | |
run: | | |
source ${INSTALL_DIR}/setupvars.sh | |
${INSTALL_TEST_DIR}/ov_auto_batch_unit_tests --gtest_output=xml:${INSTALL_TEST_DIR}/TEST-ov_auto_batch_unit_tests.xml | |
- name: AutoBatch func tests | |
if: fromJSON(needs.smart_ci.outputs.affected_components).AUTO_BATCH.test | |
run: | | |
source ${INSTALL_DIR}/setupvars.sh | |
${INSTALL_TEST_DIR}/ov_auto_batch_func_tests --gtest_output=xml:${INSTALL_TEST_DIR}/TEST-ov_auto_batch_func_tests.xml | |
- name: Proxy Plugin func tests | |
run: | | |
source ${INSTALL_DIR}/setupvars.sh | |
${INSTALL_TEST_DIR}/ov_proxy_plugin_tests --gtest_print_time=1 --gtest_output=xml:${INSTALL_TEST_DIR}/TEST-OVProxyTests.xml | |
- name: Hetero unit tests | |
if: fromJSON(needs.smart_ci.outputs.affected_components).HETERO.test | |
run: | | |
source ${{ env.INSTALL_DIR }}/setupvars.sh | |
${{ env.INSTALL_TEST_DIR }}/ov_hetero_unit_tests --gtest_print_time=1 --gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-OVHeteroUnitTests.xml | |
- name: Hetero func tests | |
if: fromJSON(needs.smart_ci.outputs.affected_components).HETERO.test | |
run: | | |
source ${INSTALL_DIR}/setupvars.sh | |
${INSTALL_TEST_DIR}/ov_hetero_func_tests --gtest_print_time=1 --gtest_output=xml:${INSTALL_TEST_DIR}/TEST-OVHeteroFuncTests.xml | |
- name: Upload Test Results | |
uses: actions/upload-artifact@v3 | |
if: ${{ !cancelled() }} | |
with: | |
name: test-results-cpp | |
path: ${{ env.INSTALL_TEST_DIR }}/TEST*.xml | |
if-no-files-found: 'warn' | |
Python_Unit_Tests: | |
name: Python unit tests | |
needs: [Build, Smart_CI] | |
timeout-minutes: 40 | |
defaults: | |
run: | |
shell: bash | |
runs-on: aks-linux-4-cores-16gb | |
container: | |
image: openvinogithubactions.azurecr.io/dockerhub/ubuntu:20.04 | |
volumes: | |
- /mount/caches:/mount/caches | |
env: | |
OPENVINO_REPO: /__w/openvino/openvino/openvino | |
INSTALL_DIR: /__w/openvino/openvino/install | |
INSTALL_TEST_DIR: /__w/openvino/openvino/install/tests | |
LAYER_TESTS_INSTALL_DIR: /__w/openvino/openvino/install/tests/layer_tests | |
steps: | |
# | |
# Initialize OpenVINO | |
# | |
- 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 ${INSTALL_DIR} | |
tar -xzf openvino_package.tar.gz -C ${INSTALL_DIR} | |
popd | |
pushd ${INSTALL_TEST_DIR} | |
tar -xzf openvino_tests.tar.gz -C ${INSTALL_DIR} | |
popd | |
- name: Fetch setup_python action | |
uses: actions/checkout@v4 | |
with: | |
sparse-checkout: | | |
.github/actions/setup_python/action.yml | |
sparse-checkout-cone-mode: false | |
path: ${{ env.OPENVINO_REPO }} | |
- name: Setup Python ${{ env.PYTHON_VERSION }} | |
uses: ./openvino/.github/actions/setup_python | |
with: | |
version: ${{ env.PYTHON_VERSION }} | |
pip-cache-path: ${{ env.PIP_CACHE_PATH }} | |
should-setup-pip-paths: 'true' | |
- name: Install OpenVINO dependencies | |
run: ${INSTALL_DIR}/install_dependencies/install_openvino_dependencies.sh -c=core -y | |
- name: Install OpenVINO Python wheels | |
run: | | |
# Install the core OV wheel | |
python3 -m pip install ${INSTALL_DIR}/tools/openvino-*.whl | |
# Find and install OV dev wheel | |
pushd ${INSTALL_DIR}/tools | |
ov_dev_wheel_name=$(find . -name 'openvino_dev*.whl') | |
python3 -m pip install $ov_dev_wheel_name[mxnet,caffe,kaldi,onnx,tensorflow2,pytorch] | |
popd | |
- name: Install Python API tests dependencies | |
run: | | |
# To enable pytest parallel features | |
python3 -m pip install pytest-xdist[psutil] | |
# 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 | |
# | |
- name: Python API 1.0 Tests | |
#if: fromJSON(needs.smart_ci.outputs.affected_components).Python_API.test | |
run: | | |
python3 -m pytest -s ${INSTALL_TEST_DIR}/pyngraph \ | |
--junitxml=${INSTALL_TEST_DIR}/TEST-Pyngraph.xml \ | |
--ignore=${INSTALL_TEST_DIR}/pyngraph/tests_compatibility/test_onnx/test_zoo_models.py \ | |
--ignore=${INSTALL_TEST_DIR}/pyngraph/tests_compatibility/test_onnx/test_backend.py | |
- name: Python API 2.0 Tests | |
#if: fromJSON(needs.smart_ci.outputs.affected_components).Python_API.test | |
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: Model Optimizer unit tests | |
if: fromJSON(needs.smart_ci.outputs.affected_components).MO.test | |
run: | | |
# required for MxNet | |
apt-get install -y libgomp1 libquadmath0 | |
python3 -m pytest -s ${INSTALL_TEST_DIR}/mo/unit_tests \ | |
--junitxml=${INSTALL_TEST_DIR}/TEST-ModelOptimizer.xml | |
- name: Python ONNX operators tests | |
if: fromJSON(needs.smart_ci.outputs.affected_components).Python_API.test || | |
fromJSON(needs.smart_ci.outputs.affected_components).ONNX_FE.test | |
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 ${INSTALL_TEST_DIR}/onnx -k 'not cuda' \ | |
--junitxml=${INSTALL_TEST_DIR}/TEST-onnx_frontend.xml \ | |
--ignore=${INSTALL_TEST_DIR}/onnx/test_python/test_zoo_models.py | |
- name: OVC unit tests | |
if: fromJSON(needs.smart_ci.outputs.affected_components).MO.test | |
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 | |
if: fromJSON(needs.smart_ci.outputs.affected_components).MO.test | |
run: | | |
# 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 | |
TEST_PRECISION: FP16 | |
- name: OVC Python API Tests | |
if: fromJSON(needs.smart_ci.outputs.affected_components).MO.test | |
run: | | |
# 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 | |
TEST_PRECISION: FP16 | |
- name: Python Frontend tests | |
if: fromJSON(needs.smart_ci.outputs.affected_components).PyTorch_FE.test || | |
fromJSON(needs.smart_ci.outputs.affected_components).PDPD_FE.test | |
run: | | |
# to allow 'libtest_builtin_extensions.so' to find 'libopenvino_onnx_frontend.so' | |
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 | |
- name: PyTorch Layer Tests | |
if: fromJSON(needs.smart_ci.outputs.affected_components).PyTorch_FE.test | |
run: python3 -m pytest ${LAYER_TESTS_INSTALL_DIR}/pytorch_tests -n logical -m precommit --junitxml=${INSTALL_TEST_DIR}/TEST-pytorch.xml | |
env: | |
TEST_DEVICE: CPU | |
TEST_PRECISION: FP32 | |
- name: PyTorch torch.compile TORCHFX Layer Tests | |
if: fromJSON(needs.smart_ci.outputs.affected_components).PyTorch_FE.test | |
run: | | |
python3 -m pytest ${LAYER_TESTS_INSTALL_DIR}/pytorch_tests -m precommit_fx_backend --junitxml=${INSTALL_TEST_DIR}/TEST-pytorch.xml | |
env: | |
TEST_DEVICE: CPU | |
TEST_PRECISION: FP32 | |
PYTORCH_TRACING_MODE: TORCHFX | |
- name: PyTorch torch.compile TORCHSCRIPT Layer Tests | |
if: fromJSON(needs.smart_ci.outputs.affected_components).PyTorch_FE.test | |
run: | | |
python3 -m pytest ${LAYER_TESTS_INSTALL_DIR}/pytorch_tests -m precommit_ts_backend --junitxml=${INSTALL_TEST_DIR}/TEST-pytorch.xml | |
env: | |
TEST_DEVICE: CPU | |
TEST_PRECISION: FP32 | |
PYTORCH_TRACING_MODE: TORCHSCRIPT | |
- name: ONNX Layer Tests | |
if: fromJSON(needs.smart_ci.outputs.affected_components).ONNX_FE.test | |
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 | |
if: fromJSON(needs.smart_ci.outputs.affected_components).TF_FE.test | |
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 | |
if: fromJSON(needs.smart_ci.outputs.affected_components).TF_FE.test | |
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 | |
if: fromJSON(needs.smart_ci.outputs.affected_components).TF_FE.test | |
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 | |
if: fromJSON(needs.smart_ci.outputs.affected_components).TF_FE.test | |
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 | |
if: fromJSON(needs.smart_ci.outputs.affected_components).TF_FE.test | |
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 | |
if: fromJSON(needs.smart_ci.outputs.affected_components).TFL_FE.test | |
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 | |
if: ${{ !cancelled() }} | |
with: | |
name: test-results-python | |
path: | | |
${{ env.INSTALL_TEST_DIR }}/TEST*.html | |
${{ env.INSTALL_TEST_DIR }}/TEST*.xml | |
if-no-files-found: 'warn' | |
CPU_Functional_Tests: | |
name: CPU functional tests | |
needs: [Build, Smart_CI] | |
timeout-minutes: 25 | |
defaults: | |
run: | |
shell: bash | |
runs-on: aks-linux-8-cores | |
container: | |
image: openvinogithubactions.azurecr.io/dockerhub/ubuntu:20.04 | |
env: | |
OPENVINO_REPO: /__w/openvino/openvino/openvino | |
INSTALL_DIR: /__w/openvino/openvino/install | |
INSTALL_TEST_DIR: /__w/openvino/openvino/install/tests | |
PARALLEL_TEST_SCRIPT: /__w/openvino/openvino/install/tests/functional_test_utils/layer_tests_summary/run_parallel.py | |
PARALLEL_TEST_CACHE: /__w/openvino/openvino/install/tests/test_cache.lst | |
if: fromJSON(needs.smart_ci.outputs.affected_components).CPU.test | |
steps: | |
- 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 ${INSTALL_DIR} | |
tar -xzf openvino_package.tar.gz -C ${INSTALL_DIR} | |
popd | |
pushd ${INSTALL_TEST_DIR} | |
tar -xzf openvino_tests.tar.gz -C ${INSTALL_DIR} | |
popd | |
- name: Install OpenVINO dependencies | |
run: bash ${INSTALL_DIR}/install_dependencies/install_openvino_dependencies.sh -c=core -y | |
- name: Fetch setup_python action | |
uses: actions/checkout@v4 | |
with: | |
sparse-checkout: | | |
.github/actions/setup_python/action.yml | |
sparse-checkout-cone-mode: false | |
path: ${{ env.OPENVINO_REPO }} | |
- name: Setup Python ${{ env.PYTHON_VERSION }} | |
uses: ./openvino/.github/actions/setup_python | |
with: | |
version: ${{ env.PYTHON_VERSION }} | |
should-setup-pip-paths: 'false' | |
- name: Install python dependencies for run_parallel.py | |
run: python3 -m pip install -r ${INSTALL_TEST_DIR}/functional_test_utils/layer_tests_summary/requirements.txt | |
- name: Restore tests execution time | |
uses: actions/cache/restore@v3 | |
with: | |
path: ${{ env.PARALLEL_TEST_CACHE }} | |
key: ${{ runner.os }}-tests-functional-cpu-stamp-${{ github.sha }} | |
restore-keys: | | |
${{ runner.os }}-tests-functional-cpu-stamp | |
- name: Intel CPU plugin func tests (parallel) | |
run: | | |
source ${INSTALL_DIR}/setupvars.sh | |
python3 ${PARALLEL_TEST_SCRIPT} -e ${INSTALL_TEST_DIR}/ov_cpu_func_tests -c ${PARALLEL_TEST_CACHE} -w ${INSTALL_TEST_DIR} -s suite -rf 0 -- --gtest_print_time=1 --gtest_filter=*smoke* | |
timeout-minutes: 20 | |
- name: Save tests execution time | |
uses: actions/cache/save@v3 | |
if: github.ref_name == 'master' | |
with: | |
path: ${{ env.PARALLEL_TEST_CACHE }} | |
key: ${{ runner.os }}-tests-functional-cpu-stamp-${{ github.sha }} | |
- name: Upload Test Results | |
uses: actions/upload-artifact@v3 | |
if: ${{ !cancelled() }} | |
with: | |
name: test-results-functional-cpu | |
path: | | |
${{ env.INSTALL_TEST_DIR }}/temp/*.log | |
${{ env.INSTALL_TEST_DIR }}/logs/*.log | |
${{ 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/hash_table.csv | |
${{ env.PARALLEL_TEST_CACHE }} | |
if-no-files-found: 'error' | |
TensorFlow_Hub_Models_Tests: | |
name: TensorFlow Hub Models tests | |
needs: [Build, Smart_CI] | |
defaults: | |
run: | |
shell: bash | |
runs-on: ${{ github.event_name == 'schedule' && 'ubuntu-20.04-16-cores' || 'ubuntu-20.04-8-cores'}} | |
timeout-minutes: ${{ github.event_name == 'schedule' && 400 || 5 }} | |
# TODO: Switch back to self-hosted runners | |
# container: | |
# image: openvinogithubactions.azurecr.io/dockerhub/ubuntu:20.04 | |
# volumes: | |
# - /mount/caches:/mount/caches | |
env: | |
OPENVINO_REPO: ${{ github.workspace }}/openvino | |
INSTALL_DIR: ${{ github.workspace }}/install | |
INSTALL_TEST_DIR: ${{ github.workspace }}/install/tests | |
MODEL_HUB_TESTS_INSTALL_DIR: ${{ github.workspace }}/install/tests/model_hub_tests | |
if: fromJSON(needs.smart_ci.outputs.affected_components).TF_FE.test || | |
fromJSON(needs.smart_ci.outputs.affected_components).TFL_FE.test | |
steps: | |
- name: Check sudo | |
run: if [ "$(id -u)" -eq 0 ]; then apt update && apt --assume-yes install sudo; fi | |
- 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 ${INSTALL_DIR} | |
tar -xzf openvino_package.tar.gz -C ${INSTALL_DIR} | |
popd | |
pushd ${INSTALL_TEST_DIR} | |
tar -xzf openvino_tests.tar.gz -C ${INSTALL_DIR} | |
popd | |
- name: Fetch setup_python action | |
uses: actions/checkout@v4 | |
with: | |
sparse-checkout: | | |
.github/actions/setup_python/action.yml | |
sparse-checkout-cone-mode: false | |
path: 'openvino' | |
- name: Setup Python ${{ env.PYTHON_VERSION }} | |
uses: ./openvino/.github/actions/setup_python | |
with: | |
version: ${{ env.PYTHON_VERSION }} | |
should-setup-pip-paths: 'false' | |
self-hosted-runner: 'false' | |
- name: Install OpenVINO Python wheels | |
run: python3 -m pip install ${INSTALL_DIR}/tools/openvino-* | |
- name: Install TF Hub tests requirements | |
run: | | |
python3 -m pip install -r ${MODEL_HUB_TESTS_INSTALL_DIR}/tf_hub_tests/requirements.txt | |
- name: TensorFlow Hub Tests - TF FE | |
run: | | |
export PYTHONPATH=${MODEL_HUB_TESTS_INSTALL_DIR}:$PYTHONPATH | |
python3 -m pytest ${MODEL_HUB_TESTS_INSTALL_DIR}/tf_hub_tests/ -m ${TYPE} --html=${INSTALL_TEST_DIR}/TEST-tf_hub_tf_fe.html --self-contained-html -v | |
env: | |
TYPE: ${{ github.event_name == 'schedule' && 'nightly' || 'precommit'}} | |
TEST_DEVICE: CPU | |
- name: Upload Test Results | |
uses: actions/upload-artifact@v3 | |
if: ${{ !cancelled() }} | |
with: | |
name: test-results-tensorflow-hub-models | |
path: | | |
${{ env.INSTALL_TEST_DIR }}/TEST*.html | |
if-no-files-found: 'error' | |
PyTorch_Models_Tests: | |
name: PyTorch Models tests | |
needs: [Build, Smart_CI] | |
timeout-minutes: ${{ github.event_name == 'schedule' && 400 || 30 }} | |
defaults: | |
run: | |
shell: bash | |
runs-on: ${{ github.event_name == 'schedule' && 'ubuntu-20.04-16-cores' || 'ubuntu-20.04-8-cores'}} | |
# TODO: Switch back to self-hosted runners | |
# container: | |
# image: openvinogithubactions.azurecr.io/dockerhub/ubuntu:20.04 | |
# volumes: | |
# - /mount/caches:/mount/caches | |
env: | |
OPENVINO_REPO: ${{ github.workspace }}/openvino | |
INSTALL_DIR: ${{ github.workspace }}/install | |
INSTALL_TEST_DIR: ${{ github.workspace }}/install/tests | |
MODEL_HUB_TESTS_INSTALL_DIR: ${{ github.workspace }}/install/tests/model_hub_tests | |
if: fromJSON(needs.smart_ci.outputs.affected_components).PyTorch_FE.test | |
steps: | |
- name: Check sudo | |
run: if [ "$(id -u)" -eq 0 ]; then apt update && apt --assume-yes install sudo; fi | |
- name: Install dependencies | |
run: | | |
# install git (required to build pip deps from the sources) | |
# install 'g++' to build 'detectron2' and 'natten' wheels | |
sudo apt-get install --assume-yes --no-install-recommends g++ git ca-certificates | |
- 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 ${INSTALL_DIR} | |
tar -xzf openvino_package.tar.gz -C ${INSTALL_DIR} | |
popd | |
pushd ${INSTALL_TEST_DIR} | |
tar -xzf openvino_tests.tar.gz -C ${INSTALL_DIR} | |
popd | |
- name: Fetch setup_python action | |
uses: actions/checkout@v4 | |
with: | |
sparse-checkout: | | |
.github/actions/setup_python/action.yml | |
sparse-checkout-cone-mode: false | |
path: 'openvino' | |
- name: Setup Python ${{ env.PYTHON_VERSION }} | |
uses: ./openvino/.github/actions/setup_python | |
with: | |
version: ${{ env.PYTHON_VERSION }} | |
should-setup-pip-paths: 'false' | |
self-hosted-runner: 'false' | |
- name: Install OpenVINO Python wheels | |
run: python3 -m pip install ${INSTALL_DIR}/tools/openvino-* | |
- name: Install PyTorch tests requirements | |
run: | | |
python3 -m pip install -r ${MODEL_HUB_TESTS_INSTALL_DIR}/torch_tests/requirements.txt | |
python3 -m pip install -r ${MODEL_HUB_TESTS_INSTALL_DIR}/torch_tests/requirements_secondary.txt | |
echo "Available storage:" | |
df -h | |
env: | |
CPLUS_INCLUDE_PATH: ${{ env.Python_ROOT_DIR }}/include/python${{ env.PYTHON_VERSION }} | |
- name: PyTorch Models Tests | |
run: | | |
export PYTHONPATH=${MODEL_HUB_TESTS_INSTALL_DIR}:$PYTHONPATH | |
python3 -m pytest ${MODEL_HUB_TESTS_INSTALL_DIR}/torch_tests -m ${TYPE} --html=${INSTALL_TEST_DIR}/TEST-torch_model_tests.html --self-contained-html -v | |
env: | |
TYPE: ${{ github.event_name == 'schedule' && 'nightly' || 'precommit'}} | |
TEST_DEVICE: CPU | |
- name: Available storage after tests | |
run: | | |
echo "Available storage:" | |
df -h | |
- name: Upload Test Results | |
uses: actions/upload-artifact@v3 | |
if: ${{ !cancelled() }} | |
with: | |
name: test-results-torch-models | |
path: | | |
${{ env.INSTALL_TEST_DIR }}/TEST*.html | |
if-no-files-found: 'error' | |
NVIDIA_Plugin: | |
name: NVIDIA plugin | |
needs: Build | |
timeout-minutes: 15 | |
defaults: | |
run: | |
shell: bash | |
runs-on: aks-linux-16-cores | |
container: | |
image: openvinogithubactions.azurecr.io/dockerhub/nvidia/cuda:11.8.0-runtime-ubuntu20.04 | |
volumes: | |
- /mount/caches:/mount/caches | |
options: -e SCCACHE_AZURE_BLOB_CONTAINER -e SCCACHE_AZURE_CONNECTION_STRING | |
env: | |
CMAKE_BUILD_TYPE: 'Release' | |
CMAKE_GENERATOR: 'Ninja Multi-Config' | |
CMAKE_CUDA_COMPILER_LAUNCHER: sccache | |
CMAKE_CXX_COMPILER_LAUNCHER: sccache | |
CMAKE_C_COMPILER_LAUNCHER: sccache | |
INSTALL_DIR: /__w/openvino/openvino/install | |
OPENVINO_DEVELOPER_PACKAGE: /__w/openvino/openvino/install/developer_package | |
OPENVINO_REPO: /__w/openvino/openvino/openvino | |
OPENVINO_CONTRIB_REPO: /__w/openvino/openvino/openvino_contrib | |
NVIDIA_BUILD_DIR: /__w/openvino/openvino/nvidia_plugin_build | |
DEBIAN_FRONTEND: 'noninteractive' | |
SCCACHE_AZURE_KEY_PREFIX: ubuntu20_x86_64_Release | |
steps: | |
- name: Fetch install_build_dependencies.sh | |
uses: actions/checkout@v4 | |
with: | |
sparse-checkout: | | |
install_build_dependencies.sh | |
sparse-checkout-cone-mode: false | |
path: ${{ env.OPENVINO_REPO }} | |
- name: Install Prerequisites | |
run: apt update && apt install -y git ca-certificates | |
- name: Download OpenVINO package | |
uses: actions/download-artifact@v3 | |
with: | |
name: openvino_package | |
path: ${{ env.INSTALL_DIR }} | |
- name: Download OpenVINO Developer package | |
uses: actions/download-artifact@v3 | |
with: | |
name: openvino_developer_package | |
path: ${{ env.INSTALL_DIR }} | |
- name: Extract OpenVINO packages | |
run: | | |
pushd ${INSTALL_DIR} | |
tar -xzf openvino_package.tar.gz -C ${INSTALL_DIR} | |
popd | |
pushd ${INSTALL_DIR} | |
tar -xzf openvino_developer_package.tar.gz -C ${INSTALL_DIR} | |
popd | |
- name: Clone OpenVINO Contrib | |
uses: actions/checkout@v4 | |
with: | |
repository: 'openvinotoolkit/openvino_contrib' | |
path: ${{ env.OPENVINO_CONTRIB_REPO }} | |
ref: 'master' | |
# | |
# Dependencies | |
# | |
- name: Install build dependencies | |
run: | | |
${OPENVINO_REPO}/install_build_dependencies.sh | |
apt -y --no-install-recommends install software-properties-common curl | |
- name: Install sccache | |
uses: mozilla-actions/[email protected] | |
with: | |
version: "v0.5.4" | |
- name: Install CUDA | |
run: | | |
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin | |
mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600 | |
apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/3bf863cc.pub | |
add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /" | |
apt update | |
apt install -y \ | |
libcudnn8=8.9.4.*-1+cuda11.8 \ | |
libcudnn8-dev=8.9.4.*-1+cuda11.8 \ | |
libcudnn8-samples=8.9.4.*-1+cuda11.8 \ | |
cuda-runtime-11-8 \ | |
cuda-11-8 \ | |
libcutensor1=1.6.1.5-1 \ | |
libcutensor-dev=1.6.1.5-1 \ | |
cuda-drivers=520.61.05-1 | |
# | |
# Build | |
# | |
- name: Cmake & Build - NVIDIA Plugin | |
run: | | |
source ${INSTALL_DIR}/setupvars.sh | |
cmake \ | |
-DOpenVINODeveloperPackage_DIR=${OPENVINO_DEVELOPER_PACKAGE}/cmake \ | |
-DCMAKE_COMPILE_WARNING_AS_ERROR=OFF \ | |
-S ${OPENVINO_CONTRIB_REPO}/modules/nvidia_plugin \ | |
-B ${NVIDIA_BUILD_DIR} | |
cmake --build ${NVIDIA_BUILD_DIR} --parallel --config ${{ env.CMAKE_BUILD_TYPE }} --verbose -- ov_nvidia_func_tests ov_nvidia_unit_tests | |
- name: Show ccache stats | |
run: ${SCCACHE_PATH} --show-stats |