Update numpy requirement from <1.27,>=1.16.6 to >=1.16.6,<2.2 in /tests #327
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: | |
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 | |
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@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 }} | |
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@v4 | |
- uses: ./.github/actions/handle_docker | |
id: handle_docker | |
with: | |
images: | | |
ov_build/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@v4 | |
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@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 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@v4 | |
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@v4 | |
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@v4 | |
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@v4 | |
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@v4 | |
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@v4 | |
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: [ 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: 'openvinogithubactions.azurecr.io/dockerhub/ubuntu:20.04' | |
affected-components: ${{ needs.smart_ci.outputs.affected_components }} | |
JS_API: | |
name: OpenVINO JS API | |
needs: [ 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": "openvinogithubactions.azurecr.io/dockerhub/ubuntu:20.04"}' | |
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@v4 | |
with: | |
name: openvino_package | |
path: ${{ env.INSTALL_DIR }} | |
- name: Download OpenVINO tests package | |
uses: actions/download-artifact@v4 | |
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} \ | |
--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@v4 | |
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@v4 | |
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: [ Build, Smart_CI ] | |
uses: ./.github/workflows/job_onnx_models_tests.yml | |
with: | |
runner: 'aks-linux-16-cores-32gb' | |
container: '{"image": "openvinogithubactions.azurecr.io/dockerhub/ubuntu:20.04", "volumes": ["/mount:/mount"]}' | |
CXX_Unit_Tests: | |
name: C++ unit tests | |
needs: [ Build, Smart_CI ] | |
uses: ./.github/workflows/job_cxx_unit_tests.yml | |
with: | |
runner: 'aks-linux-4-cores-16gb' | |
image: 'openvinogithubactions.azurecr.io/dockerhub/ubuntu:20.04' | |
affected-components: ${{ needs.smart_ci.outputs.affected_components }} | |
Python_Unit_Tests: | |
name: Python unit tests | |
needs: [ Build, Smart_CI ] | |
uses: ./.github/workflows/job_python_unit_tests.yml | |
with: | |
runner: 'aks-linux-4-cores-16gb' | |
container: '{"image": "openvinogithubactions.azurecr.io/dockerhub/ubuntu:20.04", "volumes": ["/mount:/mount"]}' | |
affected-components: ${{ needs.smart_ci.outputs.affected_components }} | |
TensorFlow_Layer_Tests: | |
name: TensorFlow Layer Tests | |
needs: [ Build, Smart_CI, Openvino_tokenizers ] | |
uses: ./.github/workflows/job_tensorflow_layer_tests.yml | |
with: | |
runner: 'aks-linux-4-cores-16gb' | |
shell: bash | |
container: '{"image": "openvinogithubactions.azurecr.io/dockerhub/ubuntu:20.04", "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: [ Build, Smart_CI ] | |
uses: ./.github/workflows/job_cpu_functional_tests.yml | |
with: | |
runner: 'aks-linux-8-cores-32gb' | |
image: 'openvinogithubactions.azurecr.io/dockerhub/ubuntu:20.04' | |
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: [ 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": "openvinogithubactions.azurecr.io/dockerhub/ubuntu:20.04", "volumes": ["/mount:/mount"]}' | |
TensorFlow_Models_Tests_Nightly_TF_HUB: | |
name: TensorFlow TF Hub Models tests | |
if: ${{ github.event_name == 'schedule' }} | |
needs: [ 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": "openvinogithubactions.azurecr.io/dockerhub/ubuntu:20.04", "volumes": ["/mount:/mount"]}' | |
TensorFlow_Models_Tests_Nightly_HF: | |
name: TensorFlow Hugging Face Models tests | |
if: ${{ github.event_name == 'schedule' }} | |
needs: [ 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": "openvinogithubactions.azurecr.io/dockerhub/ubuntu:20.04", "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: [ 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:/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: Set apt retries | |
run: echo 'Acquire::Retries "10";' > /etc/apt/apt.conf.d/80-retries | |
- 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@v4 | |
with: | |
name: openvino_package | |
path: ${{ env.INSTALL_DIR }} | |
- name: Download OpenVINO Developer package | |
uses: actions/download-artifact@v4 | |
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.7.5" | |
- 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 | |
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 | |
GPU: | |
name: GPU ${{ matrix.TEST_TYPE }} Tests | |
needs: [ Build, Smart_CI ] | |
if: fromJSON(needs.smart_ci.outputs.affected_components).GPU | |
timeout-minutes: 80 | |
runs-on: [ self-hosted, gpu ] | |
strategy: | |
max-parallel: 2 | |
fail-fast: false | |
matrix: | |
TEST_TYPE: ['unit', 'func'] | |
container: | |
image: ubuntu:20.04 | |
options: --device /dev/dri:/dev/dri --group-add 109 --group-add 44 | |
volumes: | |
- /dev/dri:/dev/dri | |
defaults: | |
run: | |
shell: bash | |
env: | |
DEBIAN_FRONTEND: noninteractive # to prevent apt-get from waiting user input | |
INSTALL_DIR: ${{ github.workspace }}/install | |
INSTALL_TEST_DIR: ${{ github.workspace }}/install/tests | |
GTEST_PARALLEL_SCRIPT: ${{ github.workspace }}/gtest_parallel.py | |
steps: | |
- name: Download OpenVINO package | |
uses: actions/download-artifact@v4 | |
with: | |
name: 'openvino_package' | |
path: ${{ env.INSTALL_DIR }} | |
- name: Download OpenVINO tests package | |
uses: actions/download-artifact@v4 | |
with: | |
name: 'openvino_tests' | |
path: ${{ env.INSTALL_TEST_DIR }} | |
# Needed as ${{ github.workspace }} is not working correctly when using Docker | |
- name: Setup Variables | |
run: | | |
echo "INSTALL_DIR=$GITHUB_WORKSPACE/install" >> "$GITHUB_ENV" | |
echo "INSTALL_TEST_DIR=$GITHUB_WORKSPACE/install/tests" >> "$GITHUB_ENV" | |
echo "GTEST_PARALLEL_SCRIPT=$GITHUB_WORKSPACE/gtest_parallel.py" >> "$GITHUB_ENV" | |
- 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 dependencies (Linux) | |
run: | | |
$INSTALL_DIR/install_dependencies/install_openvino_dependencies.sh -c=core -c=dev -c=gpu -y | |
apt-get update && apt-get install -y wget software-properties-common ca-certificates gpg-agent tzdata | |
env: | |
DEBIAN_FRONTEND: noninteractive # to prevent apt-get from waiting user input | |
TZ: "Europe/London" # to prevent tzdata from waiting user input | |
- name: Setup Python ${{ env.PYTHON_VERSION }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ env.PYTHON_VERSION }} | |
- name: Get gtest-parallel script | |
run: wget https://raw.githubusercontent.com/google/gtest-parallel/master/gtest_parallel.py | |
- name: Install GPU Drivers | |
run: | | |
wget https://github.com/intel/intel-graphics-compiler/releases/download/igc-1.0.15985.7/intel-igc-core_1.0.15985.7_amd64.deb | |
wget https://github.com/intel/intel-graphics-compiler/releases/download/igc-1.0.15985.7/intel-igc-opencl_1.0.15985.7_amd64.deb | |
wget https://github.com/intel/compute-runtime/releases/download/24.05.28454.6/intel-level-zero-gpu-dbgsym_1.3.28454.6_amd64.ddeb | |
wget https://github.com/intel/compute-runtime/releases/download/24.05.28454.6/intel-level-zero-gpu_1.3.28454.6_amd64.deb | |
wget https://github.com/intel/compute-runtime/releases/download/24.05.28454.6/intel-opencl-icd-dbgsym_24.05.28454.6_amd64.ddeb | |
wget https://github.com/intel/compute-runtime/releases/download/24.05.28454.6/intel-opencl-icd_24.05.28454.6_amd64.deb | |
wget https://github.com/intel/compute-runtime/releases/download/24.05.28454.6/libigdgmm12_22.3.11_amd64.deb | |
dpkg -i *.deb | |
# | |
# Tests | |
# | |
- name: OpenVINO GPU ${{ matrix.TEST_TYPE }} Tests | |
run: | | |
source ${INSTALL_DIR}/setupvars.sh | |
rm -rf ${INSTALL_TEST_DIR}/gpu_${{ matrix.TEST_TYPE }}_tests && mkdir -p ${INSTALL_TEST_DIR}/gpu_${{ matrix.TEST_TYPE }}_tests | |
test_filter='' | |
if [[ "${{ matrix.TEST_TYPE }}" == "unit" ]]; then | |
# Ticket: 138018 | |
test_filter='-*scatter_nd_update_gpu.dynamic_padded_output*:*border_gpu.basic_zero_input*:*bicubic_zeros_no_align_data1x1*:*bicubic_border_align_batches*:*bilinear_zeros_no_align_data1x1*:*non_zero_gpu.empty_input*:*mark_shape_of_subgraphs.concat_with_empty_tensor_inputs*:*concat_cpu_impl.dynamic_4d_f*:*border_gpu.basic_zero_input_dynamic*:*network_test.model_with_empty_input_is_not_dynamic*:*bicubic_zeros_align_data1x1*' | |
else | |
test_filter='*smoke*' | |
fi | |
python3 ${GTEST_PARALLEL_SCRIPT} ${INSTALL_TEST_DIR}/ov_gpu_${{ matrix.TEST_TYPE }}_tests --dump_json_test_results=${INSTALL_TEST_DIR}/gpu_${{ matrix.TEST_TYPE }}_tests/ov_gpu_${{ matrix.TEST_TYPE }}_tests.json -- --report_unique_name --gtest_filter=$test_filter | |
- name: Upload Test Results | |
uses: actions/upload-artifact@v4 | |
if: always() | |
with: | |
name: test-results-${{ matrix.TEST_TYPE }}-gpu | |
path: ${{ env.INSTALL_TEST_DIR }}/gpu_${{ matrix.TEST_TYPE }}_tests | |
if-no-files-found: 'error' | |
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, GPU] | |
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 |