1687 lines
64 KiB
YAML
1687 lines
64 KiB
YAML
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:
|
|
push:
|
|
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 }}"
|
|
skip_workflow: "${{ steps.smart_ci.outputs.skip_workflow }}"
|
|
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 }}
|
|
skip_when_only_listed_labels_set: 'docs'
|
|
skip_when_only_listed_files_changed: '*.md,*.rst,*.png,*.jpg,*.svg'
|
|
|
|
Build:
|
|
needs: Smart_CI
|
|
timeout-minutes: 150
|
|
defaults:
|
|
run:
|
|
shell: bash
|
|
runs-on: aks-linux-16-cores-32gb
|
|
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
|
|
if: "!needs.smart_ci.outputs.skip_workflow"
|
|
|
|
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/sccache-action@v0.0.3
|
|
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_PATH} --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, Smart_CI]
|
|
timeout-minutes: 20
|
|
defaults:
|
|
run:
|
|
shell: bash
|
|
runs-on: aks-linux-16-cores-32gb
|
|
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
|
|
if: fromJSON(needs.smart_ci.outputs.affected_components).ONNX_RT
|
|
|
|
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/sccache-action@v0.0.3
|
|
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
|
|
if: fromJSON(needs.smart_ci.outputs.affected_components).Core.test
|
|
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
|
|
if: fromJSON(needs.smart_ci.outputs.affected_components).inference.test
|
|
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
|
|
if: fromJSON(needs.smart_ci.outputs.affected_components).inference.test
|
|
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
|
|
if: fromJSON(needs.smart_ci.outputs.affected_components).Core.test
|
|
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).GNA.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
|
|
if: fromJSON(needs.smart_ci.outputs.affected_components).GNA.test
|
|
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: ov_subgraphs_dumper_tests tests
|
|
run: |
|
|
source ${INSTALL_DIR}/setupvars.sh
|
|
${INSTALL_TEST_DIR}/ov_subgraphs_dumper_tests --gtest_print_time=1 \
|
|
--gtest_output=xml:${INSTALL_TEST_DIR}/TEST-ov_subgraphs_dumper_tests.xml
|
|
|
|
- name: Template OpImpl tests
|
|
run: |
|
|
source ${INSTALL_DIR}/setupvars.sh
|
|
${INSTALL_TEST_DIR}/ov_op_conformance_tests --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
|
|
if: fromJSON(needs.smart_ci.outputs.affected_components).PROXY.test
|
|
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-32gb
|
|
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 || 25 }}
|
|
# 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'
|
|
|
|
TensorFlow_Hub_Performance_Models_Tests:
|
|
name: TensorFlow Hub Performance 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 || 25 }}
|
|
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: Install Hub Performance tests requirements
|
|
run: |
|
|
python3 -m pip install -r ${MODEL_HUB_TESTS_INSTALL_DIR}/performance_tests/requirements.txt
|
|
|
|
- name: Performance Hub Tests
|
|
run: |
|
|
export PYTHONPATH=${MODEL_HUB_TESTS_INSTALL_DIR}:$PYTHONPATH
|
|
python3 -m pytest ${MODEL_HUB_TESTS_INSTALL_DIR}/performance_tests/ -m ${TYPE} --html=${INSTALL_TEST_DIR}/TEST-tf_hub_performance.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-performance-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
|
|
USE_SYSTEM_CACHE: False
|
|
|
|
- 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, Smart_CI]
|
|
timeout-minutes: 15
|
|
defaults:
|
|
run:
|
|
shell: bash
|
|
runs-on: aks-linux-16-cores-32gb
|
|
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
|
|
if: fromJSON(needs.smart_ci.outputs.affected_components).NVIDIA
|
|
|
|
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/sccache-action@v0.0.3
|
|
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
|
|
|
|
GPU_Stub:
|
|
needs: [Build, Smart_CI]
|
|
runs-on: ubuntu-latest
|
|
if: fromJSON(needs.smart_ci.outputs.affected_components).GPU
|
|
steps:
|
|
- name: GPU stub
|
|
run: |
|
|
echo "This is only a stub to collect statistics of GPU runs filtered by Smart CI.
|
|
It will help us to estimate hardware requirements"
|
|
shell: bash
|
|
|
|
Overall_Status:
|
|
name: ci/gha_overall_status
|
|
needs: [Smart_CI, Build, Debian_Packages, Samples, Conformance, ONNX_Runtime, CXX_Unit_Tests, Python_Unit_Tests,
|
|
CPU_Functional_Tests, TensorFlow_Hub_Models_Tests, TensorFlow_Hub_Performance_Models_Tests, PyTorch_Models_Tests, NVIDIA_Plugin]
|
|
if: ${{ always() }}
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Check status of all jobs
|
|
if: >-
|
|
${{
|
|
contains(needs.*.result, 'failure') ||
|
|
contains(needs.*.result, 'cancelled')
|
|
}}
|
|
run: exit 1
|