703 lines
26 KiB
YAML
703 lines
26 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:
|
|
merge_group:
|
|
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
|
|
|
|
permissions: read-all
|
|
|
|
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 }}"
|
|
changed_components: "${{ steps.smart_ci.outputs.changed_components }}"
|
|
skip_workflow: "${{ steps.smart_ci.outputs.skip_workflow }}"
|
|
steps:
|
|
- name: checkout action
|
|
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
|
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 }}
|
|
ref_name: ${{ github.ref_name }}
|
|
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'
|
|
|
|
- name: Show affected components
|
|
run: |
|
|
echo "${{ toJSON(steps.smart_ci.outputs.affected_components) }}"
|
|
shell: bash
|
|
|
|
Docker:
|
|
needs: Smart_CI
|
|
runs-on: aks-linux-4-cores-16gb-docker-build
|
|
container:
|
|
image: openvinogithubactions.azurecr.io/docker_build:0.2
|
|
volumes:
|
|
- /mount:/mount
|
|
outputs:
|
|
images: "${{ steps.handle_docker.outputs.images }}"
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
|
|
|
- uses: ./.github/actions/handle_docker
|
|
id: handle_docker
|
|
with:
|
|
images: |
|
|
ov_build/ubuntu_20_04_x64
|
|
ov_build/ubuntu_20_04_x64_nvidia
|
|
ov_test/ubuntu_20_04_x64
|
|
registry: 'openvinogithubactions.azurecr.io'
|
|
dockerfiles_root_dir: '.github/dockerfiles'
|
|
changed_components: ${{ needs.smart_ci.outputs.changed_components }}
|
|
|
|
Build:
|
|
needs: [Docker, Smart_CI]
|
|
timeout-minutes: 150
|
|
defaults:
|
|
run:
|
|
shell: bash
|
|
runs-on: aks-linux-16-cores-32gb
|
|
container:
|
|
image: ${{ fromJSON(needs.docker.outputs.images).ov_build.ubuntu_20_04_x64 }}
|
|
volumes:
|
|
- /mount:/mount
|
|
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
|
|
SCCACHE_IGNORE_SERVER_IO_ERROR: 1
|
|
SCCACHE_SERVER_PORT: 35555
|
|
SCCACHE_ERROR_LOG: /__w/openvino/sccache_log.txt
|
|
SCCACHE_LOG: warn
|
|
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_DIR_JS: /__w/openvino/openvino/openvino_install/js
|
|
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/src/frontends/onnx/tests/ci_utils/onnxruntime
|
|
if: "!needs.smart_ci.outputs.skip_workflow"
|
|
|
|
steps:
|
|
- name: Clone OpenVINO
|
|
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
|
with:
|
|
path: ${{ env.OPENVINO_REPO }}
|
|
submodules: 'true'
|
|
|
|
# Ticket: 139627
|
|
- name: Checkout the latest OneDNN for GPU in nightly
|
|
if: ${{ github.event_name == 'schedule' }}
|
|
working-directory: ${{ env.OPENVINO_REPO }}/src/plugins/intel_gpu/thirdparty/onednn_gpu
|
|
run: |
|
|
git fetch origin
|
|
git checkout main
|
|
git rev-parse HEAD
|
|
|
|
- name: Clone OpenVINO Contrib
|
|
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
|
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 python dependencies
|
|
run: |
|
|
# For Python API: build and wheel packaging
|
|
python3 -m pip install -r ${OPENVINO_REPO}/src/bindings/python/wheel/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_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
|
|
cmake -UPYTHON* \
|
|
-UTBB* \
|
|
-DENABLE_SYSTEM_TBB=ON \
|
|
-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 \
|
|
-DCUSTOM_OPERATIONS="calculate_grid;complex_mul;fft;grid_sample;sparse_conv;sparse_conv_transpose" \
|
|
-DOPENVINO_EXTRA_MODULES="${OPENVINO_CONTRIB_REPO}/modules/java_api;${OPENVINO_CONTRIB_REPO}/modules/custom_operations" \
|
|
-S ${OPENVINO_REPO} \
|
|
-B ${BUILD_DIR}
|
|
cmake --build ${BUILD_DIR} --parallel --config ${{ env.CMAKE_BUILD_TYPE }}
|
|
|
|
- name: CMake configure, build and install - OpenVINO JS API
|
|
if: fromJSON(needs.smart_ci.outputs.affected_components).JS_API
|
|
run:
|
|
cmake -DCPACK_GENERATOR=NPM -DENABLE_SYSTEM_TBB=OFF -UTBB* -S ${OPENVINO_REPO} -B ${BUILD_DIR}
|
|
|
|
cmake --build ${BUILD_DIR} --parallel
|
|
|
|
cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR_JS} -P ${BUILD_DIR}/cmake_install.cmake
|
|
|
|
#
|
|
# Upload build artifacts and logs
|
|
#
|
|
- name: Upload build logs
|
|
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
|
if: always()
|
|
with:
|
|
name: build_logs
|
|
path: ${{ env.SCCACHE_ERROR_LOG }}
|
|
if-no-files-found: 'ignore'
|
|
|
|
- name: Upload openvino package
|
|
if: ${{ always() }}
|
|
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
|
with:
|
|
name: openvino_package
|
|
path: ${{ env.BUILD_DIR }}/openvino_package.tar.gz
|
|
if-no-files-found: 'error'
|
|
|
|
- name: Upload openvino js package
|
|
if: fromJSON(needs.smart_ci.outputs.affected_components).JS_API
|
|
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
|
with:
|
|
name: openvino_js_package
|
|
path: ${{ env.INSTALL_DIR_JS }}
|
|
if-no-files-found: 'error'
|
|
|
|
- name: Upload openvino developer package
|
|
if: ${{ always() }}
|
|
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
|
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@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
|
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@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
|
with:
|
|
name: openvino_tests
|
|
path: ${{ env.BUILD_DIR }}/openvino_tests.tar.gz
|
|
if-no-files-found: 'error'
|
|
|
|
Debian_Packages:
|
|
name: Debian Packages
|
|
needs: Build
|
|
uses: ./.github/workflows/job_debian_packages.yml
|
|
with:
|
|
runner: 'aks-linux-4-cores-16gb'
|
|
image: 'openvinogithubactions.azurecr.io/dockerhub/ubuntu:20.04'
|
|
|
|
Samples:
|
|
needs: [ Docker, Build, Smart_CI ]
|
|
if: fromJSON(needs.smart_ci.outputs.affected_components).samples
|
|
uses: ./.github/workflows/job_samples_tests.yml
|
|
with:
|
|
runner: 'aks-linux-4-cores-16gb'
|
|
image: ${{ fromJSON(needs.docker.outputs.images).ov_test.ubuntu_20_04_x64 }}
|
|
affected-components: ${{ needs.smart_ci.outputs.affected_components }}
|
|
|
|
JS_API:
|
|
name: OpenVINO JS API
|
|
needs: [ Docker, Build, Smart_CI ]
|
|
if: fromJSON(needs.smart_ci.outputs.affected_components).JS_API
|
|
uses: ./.github/workflows/job_openvino_js.yml
|
|
with:
|
|
runner: 'aks-linux-4-cores-16gb'
|
|
container: '{"image": "${{ fromJSON(needs.docker.outputs.images).ov_build.ubuntu_20_04_x64 }}"}'
|
|
|
|
Conformance:
|
|
needs: [ Build, Smart_CI ]
|
|
timeout-minutes: ${{ matrix.TEST_TYPE == 'API' && 5 || 20 }}
|
|
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@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
|
|
with:
|
|
name: openvino_package
|
|
path: ${{ env.INSTALL_DIR }}
|
|
|
|
- name: Download OpenVINO tests package
|
|
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
|
|
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@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
|
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} \
|
|
--cache_path=${CONFORMANCE_TOOLS_DIR}/github/cache/${TEST_DEVICE}/test_cache_${{ matrix.TEST_TYPE }}.lst \
|
|
-f=${CONFORMANCE_TOOLS_DIR}/github/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@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
|
with:
|
|
name: conformance_artifacts_${{ matrix.TEST_TYPE }}-${{ env.TEST_DEVICE }}
|
|
path: ${{ env.CONFORMANCE_ARTIFACTS_DIR }}/conformance_artifacts.tar.gz
|
|
if-no-files-found: 'error'
|
|
|
|
- name: Mandatory API Conformance Tests (Template)
|
|
if: ${{ matrix.TEST_TYPE == 'API' }}
|
|
run: |
|
|
source ${INSTALL_DIR}/setupvars.sh
|
|
|
|
python3 ${CONFORMANCE_TOOLS_DIR}/run_conformance.py -ov=${INSTALL_DIR}/tests \
|
|
-d=TEMPLATE \
|
|
-t=${{ matrix.TEST_TYPE }} \
|
|
-w=${CONFORMANCE_ARTIFACTS_DIR} \
|
|
-sm=mandatory
|
|
|
|
- name: Pack Conformance Artifacts
|
|
if: ${{ matrix.TEST_TYPE == 'API' }}
|
|
run: |
|
|
pushd ${CONFORMANCE_ARTIFACTS_DIR}
|
|
tar -czvf ${CONFORMANCE_ARTIFACTS_DIR}/conformance_artifacts.tar.gz *
|
|
popd
|
|
|
|
- name: Upload Conformance Artifacts
|
|
if: ${{ matrix.TEST_TYPE == 'API' }}
|
|
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
|
with:
|
|
name: conformance_artifacts_${{ matrix.TEST_TYPE }}-TEMPLATE
|
|
path: ${{ env.CONFORMANCE_ARTIFACTS_DIR }}/conformance_artifacts.tar.gz
|
|
if-no-files-found: 'error'
|
|
|
|
ONNX_Runtime:
|
|
name: ONNX Runtime Integration
|
|
if: fromJSON(needs.smart_ci.outputs.affected_components).ONNX_RT ||
|
|
fromJSON(needs.smart_ci.outputs.affected_components).ONNX_FE
|
|
needs: [ Build, Smart_CI, Docker ]
|
|
uses: ./.github/workflows/job_onnx_runtime.yml
|
|
with:
|
|
runner: 'aks-linux-16-cores-32gb'
|
|
container: '{"image": "${{ fromJSON(needs.docker.outputs.images).ov_build.ubuntu_20_04_x64 }}", "volumes": ["/mount:/mount"], "options": "-e SCCACHE_AZURE_BLOB_CONTAINER -e SCCACHE_AZURE_CONNECTION_STRING"}'
|
|
sccache-azure-key-prefix: 'ubuntu20_x86_64_onnxruntime'
|
|
|
|
ONNX_Models:
|
|
name: ONNX Models Tests
|
|
if: fromJSON(needs.smart_ci.outputs.affected_components).Python_API.test ||
|
|
fromJSON(needs.smart_ci.outputs.affected_components).ONNX_FE.test
|
|
needs: [ Docker, Build, Smart_CI ]
|
|
uses: ./.github/workflows/job_onnx_models_tests.yml
|
|
with:
|
|
runner: 'aks-linux-16-cores-32gb'
|
|
container: '{"image": "${{ fromJSON(needs.docker.outputs.images).ov_build.ubuntu_20_04_x64 }}", "volumes": ["/mount:/mount"]}'
|
|
|
|
CXX_Unit_Tests:
|
|
name: C++ unit tests
|
|
needs: [ Docker, Build, Smart_CI ]
|
|
uses: ./.github/workflows/job_cxx_unit_tests.yml
|
|
with:
|
|
runner: 'aks-linux-4-cores-16gb'
|
|
image: ${{ fromJSON(needs.docker.outputs.images).ov_test.ubuntu_20_04_x64 }}
|
|
affected-components: ${{ needs.smart_ci.outputs.affected_components }}
|
|
|
|
Python_Unit_Tests:
|
|
name: Python unit tests
|
|
needs: [ Docker, Build, Smart_CI ]
|
|
uses: ./.github/workflows/job_python_unit_tests.yml
|
|
with:
|
|
runner: 'aks-linux-4-cores-16gb'
|
|
container: '{"image": "${{ fromJSON(needs.docker.outputs.images).ov_build.ubuntu_20_04_x64 }}", "volumes": ["/mount:/mount"]}'
|
|
affected-components: ${{ needs.smart_ci.outputs.affected_components }}
|
|
|
|
TensorFlow_Layer_Tests:
|
|
name: TensorFlow Layer Tests
|
|
needs: [ Docker, Build, Smart_CI, Openvino_tokenizers ]
|
|
uses: ./.github/workflows/job_tensorflow_layer_tests.yml
|
|
with:
|
|
runner: 'aks-linux-4-cores-16gb'
|
|
shell: bash
|
|
container: '{"image": "${{ fromJSON(needs.docker.outputs.images).ov_build.ubuntu_20_04_x64 }}", "volumes": ["/mount:/mount"]}'
|
|
affected-components: ${{ needs.smart_ci.outputs.affected_components }}
|
|
|
|
CPU_Functional_Tests:
|
|
name: CPU functional tests
|
|
if: fromJSON(needs.smart_ci.outputs.affected_components).CPU.test
|
|
needs: [ Docker, Build, Smart_CI ]
|
|
uses: ./.github/workflows/job_cpu_functional_tests.yml
|
|
with:
|
|
runner: 'aks-linux-8-cores-32gb'
|
|
image: ${{ fromJSON(needs.docker.outputs.images).ov_test.ubuntu_20_04_x64 }}
|
|
|
|
TensorFlow_Models_Tests_Precommit:
|
|
name: TensorFlow Models tests
|
|
if: fromJSON(needs.smart_ci.outputs.affected_components).TF_FE.test ||
|
|
fromJSON(needs.smart_ci.outputs.affected_components).TFL_FE.test
|
|
needs: [ Docker, Build, Smart_CI, Openvino_tokenizers ]
|
|
uses: ./.github/workflows/job_tensorflow_models_tests.yml
|
|
with:
|
|
runner: 'aks-linux-8-cores-16gb'
|
|
model_scope: 'precommit'
|
|
container: '{"image": "${{ fromJSON(needs.docker.outputs.images).ov_build.ubuntu_20_04_x64 }}", "volumes": ["/mount:/mount"]}'
|
|
|
|
TensorFlow_Models_Tests_Nightly_TF_HUB:
|
|
name: TensorFlow TF Hub Models tests
|
|
if: ${{ github.event_name == 'schedule' }}
|
|
needs: [ Docker, Build, Smart_CI, Openvino_tokenizers ]
|
|
uses: ./.github/workflows/job_tensorflow_models_tests.yml
|
|
with:
|
|
runner: 'aks-linux-8-cores-32gb'
|
|
model_scope: 'nightly_tf_hub'
|
|
container: '{"image": "${{ fromJSON(needs.docker.outputs.images).ov_build.ubuntu_20_04_x64 }}", "volumes": ["/mount:/mount"]}'
|
|
|
|
TensorFlow_Models_Tests_Nightly_HF:
|
|
name: TensorFlow Hugging Face Models tests
|
|
if: ${{ github.event_name == 'schedule' }}
|
|
needs: [ Docker, Build, Smart_CI, Openvino_tokenizers ]
|
|
uses: ./.github/workflows/job_tensorflow_models_tests.yml
|
|
with:
|
|
runner: 'aks-linux-8-cores-32gb'
|
|
model_scope: 'nightly_hf'
|
|
container: '{"image": "${{ fromJSON(needs.docker.outputs.images).ov_build.ubuntu_20_04_x64 }}", "volumes": ["/mount:/mount"]}'
|
|
|
|
# TODO: Switch back to self-hosted runners
|
|
# container:
|
|
# image: openvinogithubactions.azurecr.io/dockerhub/ubuntu:20.04
|
|
# volumes:
|
|
# - /mount:/mount
|
|
PyTorch_Models_Tests:
|
|
name: PyTorch Models tests
|
|
if: fromJSON(needs.smart_ci.outputs.affected_components).PyTorch_FE.test
|
|
needs: [ Build, Smart_CI, Openvino_tokenizers ]
|
|
uses: ./.github/workflows/job_pytorch_models_tests.yml
|
|
with:
|
|
runner: ${{ github.event_name == 'schedule' && 'ubuntu-20.04-16-cores' || 'ubuntu-20.04-8-cores' }}
|
|
event: ${{ github.event_name }}
|
|
|
|
NVIDIA_Plugin:
|
|
name: NVIDIA plugin
|
|
needs: [ Docker, Build, Smart_CI ]
|
|
timeout-minutes: 15
|
|
defaults:
|
|
run:
|
|
shell: bash
|
|
runs-on: aks-linux-16-cores-32gb
|
|
container:
|
|
image: ${{ fromJSON(needs.docker.outputs.images).ov_build.ubuntu_20_04_x64_nvidia }}
|
|
volumes:
|
|
- /mount:/mount
|
|
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
|
|
SCCACHE_IGNORE_SERVER_IO_ERROR: 1
|
|
SCCACHE_SERVER_PORT: 35555
|
|
SCCACHE_ERROR_LOG: /__w/openvino/sccache_log.txt
|
|
SCCACHE_LOG: warn
|
|
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: Download OpenVINO package
|
|
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
|
|
with:
|
|
name: openvino_package
|
|
path: ${{ env.INSTALL_DIR }}
|
|
|
|
- name: Download OpenVINO Developer package
|
|
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
|
|
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@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
|
with:
|
|
repository: 'openvinotoolkit/openvino_contrib'
|
|
path: ${{ env.OPENVINO_CONTRIB_REPO }}
|
|
ref: 'master'
|
|
|
|
#
|
|
# 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
|
|
|
|
Openvino_tokenizers:
|
|
name: OpenVINO tokenizers extension
|
|
needs: [ Build, Smart_CI, Docker ]
|
|
uses: ./.github/workflows/job_tokenizers.yml
|
|
with:
|
|
runner: 'aks-linux-4-cores-16gb'
|
|
shell: bash
|
|
container: '{"image": "${{ fromJSON(needs.docker.outputs.images).ov_build.ubuntu_20_04_x64 }}", "volumes": ["/mount:/mount"]}'
|
|
affected-components: ${{ needs.smart_ci.outputs.affected_components }}
|
|
if: fromJSON(needs.smart_ci.outputs.affected_components).TOKENIZERS
|
|
|
|
iGPU:
|
|
name: iGPU Tests
|
|
needs: [ Build, Smart_CI ]
|
|
uses: ./.github/workflows/job_gpu_tests.yml
|
|
strategy:
|
|
max-parallel: 2
|
|
fail-fast: false
|
|
matrix:
|
|
TEST_TYPE: ['unit', 'func']
|
|
with:
|
|
device: 'igpu'
|
|
test_type: ${{ matrix.TEST_TYPE }}
|
|
runner: "[ 'self-hosted', 'igpu' ]"
|
|
container: '{"image": "ubuntu:20.04", "volumes": ["/dev/dri:/dev/dri"], "options": "--group-add 109 --group-add 44
|
|
--device /dev/dri:/dev/dri"}'
|
|
if: fromJSON(needs.smart_ci.outputs.affected_components).GPU
|
|
|
|
dGPU:
|
|
name: dGPU Tests
|
|
needs: [ Build, Smart_CI ]
|
|
uses: ./.github/workflows/job_gpu_tests.yml
|
|
strategy:
|
|
max-parallel: 2
|
|
fail-fast: false
|
|
matrix:
|
|
TEST_TYPE: ['unit', 'func']
|
|
with:
|
|
device: 'dgpu'
|
|
test_type: ${{ matrix.TEST_TYPE }}
|
|
runner: "[ 'self-hosted', 'dgpu' ]"
|
|
container: '{"image": "ubuntu:20.04", "volumes": ["/dev/dri:/dev/dri"], "options": "--group-add 109 --group-add 44
|
|
--device /dev/dri/card0:/dev/dri/card0 --device /dev/dri/renderD128:/dev/dri/renderD128"}'
|
|
if: ${{ github.event_name == 'schedule' }}
|
|
|
|
Overall_Status:
|
|
name: ci/gha_overall_status
|
|
needs: [Smart_CI, Build, Debian_Packages, Samples, Conformance, ONNX_Runtime, CXX_Unit_Tests, Python_Unit_Tests, TensorFlow_Layer_Tests,
|
|
CPU_Functional_Tests, TensorFlow_Models_Tests_Precommit, PyTorch_Models_Tests, NVIDIA_Plugin, Openvino_tokenizers, iGPU]
|
|
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
|