name: Linux (Ubuntu 22.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 }}-ubuntu-22
  cancel-in-progress: true

permissions: read-all

env:
  PIP_CACHE_PATH: /mount/caches/pip/linux
  PYTHON_VERSION: '3.11'
  TARGET_BRANCH: ${{ github.base_ref || github.event.merge_group.base_ref || github.ref }}

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@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
        timeout-minutes: 15
        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
    if: "!needs.smart_ci.outputs.skip_workflow"
    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@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
        timeout-minutes: 15

      - uses: ./.github/actions/handle_docker
        id: handle_docker
        with:
          images: |
            ov_build/ubuntu_22_04_x64
            ov_build/ubuntu_22_04_x64_nvidia
            ov_test/ubuntu_22_04_x64
          registry: 'openvinogithubactions.azurecr.io'
          dockerfiles_root_dir: '.github/dockerfiles'
          changed_components: ${{ needs.smart_ci.outputs.changed_components }}

  Build:
    needs: [Docker, Smart_CI]
    uses: ./.github/workflows/job_build_linux.yml
    with:
      runner: 'aks-linux-16-cores-32gb'
      container: '{"image": "${{ fromJSON(needs.docker.outputs.images).ov_build.ubuntu_22_04_x64 }}", "volumes": ["/mount:/mount"], "options": "-e SCCACHE_AZURE_BLOB_CONTAINER -e SCCACHE_AZURE_CONNECTION_STRING"}'
      affected-components: ${{ needs.smart_ci.outputs.affected_components }}
      event-name: ${{ github.event_name }}
      os: 'ubuntu_22_04'
      build-js: true
      build-contrib: true
      build-debian-packages: true
      build-rpm-packages: false
      cmake-options: |- 
            -G "Ninja Multi-Config" \
            -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 \
            -DENABLE_WHEEL=ON \
            -DCMAKE_COMPILE_WARNING_AS_ERROR=ON

  Debian_Packages:
    name: Debian Packages
    needs: [Docker, Build]
    uses: ./.github/workflows/job_debian_packages.yml
    with:
      runner: 'aks-linux-4-cores-16gb'
      image: 'openvinogithubactions.azurecr.io/dockerhub/ubuntu:22.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'
      container: '{"image": "${{ fromJSON(needs.docker.outputs.images).ov_test.ubuntu_22_04_x64 }}", "volumes": ["/mount:/mount"]}'
      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_22_04_x64 }}"}'

  Conformance:
    needs: [ Build, Smart_CI ]
    timeout-minutes: ${{ matrix.TEST_TYPE == 'API' && 5 || 20 }}
    defaults:
      run:
        shell: bash
    runs-on: ubuntu-22.04-16-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@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
        with:
          name: openvino_package
          path: ${{ env.INSTALL_DIR }}

      - name: Download OpenVINO tests package
        uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
        with:
          name: openvino_tests
          path: ${{ env.INSTALL_TEST_DIR }}

      - name: Extract OpenVINO packages
        run: |
          pushd ${INSTALL_DIR}
            pigz -dc openvino_package.tar.gz | tar -xf - -C ${INSTALL_DIR}
          popd
          pushd ${INSTALL_TEST_DIR}
            pigz -dc openvino_tests.tar.gz | tar -xf - -C ${INSTALL_DIR}
          popd

      - name: Fetch setup_python action
        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
        timeout-minutes: 15
        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 -cvf - * | pigz > ${CONFORMANCE_ARTIFACTS_DIR}/conformance_artifacts.tar.gz
          popd

      - name: Upload Conformance Artifacts
        if: ${{ always() }}
        uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # v4.6.0
        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 -cvf - * | pigz > ${CONFORMANCE_ARTIFACTS_DIR}/conformance_artifacts.tar.gz
          popd

      - name: Upload Conformance Artifacts
        if: ${{ matrix.TEST_TYPE == 'API' }}
        uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # v4.6.0
        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_22_04_x64 }}", "volumes": ["/mount:/mount"], "options": "-e SCCACHE_AZURE_BLOB_CONTAINER -e SCCACHE_AZURE_CONNECTION_STRING"}'
      sccache-azure-key-prefix: 'ubuntu22_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-64gb'
      container: '{"image": "${{ fromJSON(needs.docker.outputs.images).ov_test.ubuntu_22_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_22_04_x64 }}
      affected-components: ${{ needs.smart_ci.outputs.affected_components }}
      os: 'ubuntu_22_04'

  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_test.ubuntu_22_04_x64 }}", "volumes": ["/mount:/mount"]}'
      affected-components: ${{ needs.smart_ci.outputs.affected_components }}
      python-version: '3.11'

  Python_API_Tests:
    name: Python API tests
    needs: [ Docker, Build, Smart_CI ]
    uses: ./.github/workflows/job_python_api_tests.yml
    with:
      runner: 'aks-linux-4-cores-16gb'
      container: '{"image": "${{ fromJSON(needs.docker.outputs.images).ov_test.ubuntu_22_04_x64 }}", "volumes": ["/mount:/mount"]}'
      affected-components: ${{ needs.smart_ci.outputs.affected_components }}
      python-version: '3.11'

  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'
      container: '{"image": "${{ fromJSON(needs.docker.outputs.images).ov_test.ubuntu_22_04_x64 }}", "volumes": ["/mount:/mount"]}'
      affected-components: ${{ needs.smart_ci.outputs.affected_components }}
      python-version: '3.11'

  Pytorch_Layer_Tests:
    name: Pytorch Layer Tests
    needs: [ Docker, Build, Smart_CI ]
    uses: ./.github/workflows/job_pytorch_layer_tests.yml
    with:
      runner: 'aks-linux-4-cores-16gb'
      container: '{"image": "${{ fromJSON(needs.docker.outputs.images).ov_test.ubuntu_22_04_x64 }}", "volumes": ["/mount:/mount"]}'
      affected-components: ${{ needs.smart_ci.outputs.affected_components }}
      python-version: '3.11'

  JAX_Layer_Tests:
    name: JAX Layer Tests
    needs: [ Docker, Build, Smart_CI ]
    uses: ./.github/workflows/job_jax_layer_tests.yml
    with:
      runner: 'aks-linux-4-cores-16gb'
      container: '{"image": "${{ fromJSON(needs.docker.outputs.images).ov_test.ubuntu_22_04_x64 }}", "volumes": ["/mount:/mount"]}'
      affected-components: ${{ needs.smart_ci.outputs.affected_components }}
      python-version: '3.11'

  Keras3_OpenVINO_Backend:
    name: Keras 3 OpenVINO Backend Tests
    if: fromJSON(needs.smart_ci.outputs.affected_components).Python_API.test
    needs: [ Docker, Build, Smart_CI, Openvino_tokenizers ]
    uses: ./.github/workflows/job_keras3_backend.yml
    with:
      runner: 'aks-linux-4-cores-16gb'
      container: '{"image": "${{ fromJSON(needs.docker.outputs.images).ov_test.ubuntu_22_04_x64 }}", "volumes": ["/mount:/mount"]}'
      python-version: '3.11'

  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_22_04_x64 }}
      python-version: '3.11'

  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_test.ubuntu_22_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-64gb'
      model_scope: 'nightly_tf_hub'
      container: '{"image": "${{ fromJSON(needs.docker.outputs.images).ov_test.ubuntu_22_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-64gb'
      model_scope: 'nightly_hf'
      container: '{"image": "${{ fromJSON(needs.docker.outputs.images).ov_test.ubuntu_22_04_x64 }}", "volumes": ["/mount:/mount"]}'

  # TODO: Switch back to self-hosted runners
  # container:
  #   image: openvinogithubactions.azurecr.io/dockerhub/ubuntu:22.04
  #   volumes:
  #     - /mount:/mount
  PyTorch_Models_Tests:
    name: PyTorch Models tests
    if: ${{ github.event_name != 'schedule' && 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: 'ubuntu-22.04-8-cores'
      model_scope: 'precommit'

  PyTorch_Models_Tests_Nightly_Scope1:
    name: PyTorch Models Nightly Scope1 tests
    if: ${{ github.event_name == 'schedule' }}
    needs: [ Build, Smart_CI, Openvino_tokenizers ]
    uses: ./.github/workflows/job_pytorch_models_tests.yml
    with:
      runner: 'ubuntu-22.04-16-cores'
      model_scope: 'nightly_scope1'

  PyTorch_Models_Tests_Nightly_Scope2:
    name: PyTorch Models Nightly Scope2 tests
    if: ${{ github.event_name == 'schedule' }}
    needs: [ Build, Smart_CI, Openvino_tokenizers ]
    uses: ./.github/workflows/job_pytorch_models_tests.yml
    with:
      runner: 'ubuntu-22.04-16-cores'
      model_scope: 'nightly_scope2'

  JAX_Models_Tests_Precommit:
    name: JAX/Flax Models tests
    if: fromJSON(needs.smart_ci.outputs.affected_components).JAX_FE.test
    needs: [ Docker, Build, Smart_CI, Openvino_tokenizers ]
    uses: ./.github/workflows/job_jax_models_tests.yml
    with:
      runner: 'aks-linux-8-cores-16gb'
      model_scope: 'precommit'
      container: '{"image": "${{ fromJSON(needs.docker.outputs.images).ov_test.ubuntu_22_04_x64 }}", "volumes": ["/mount:/mount"]}'

  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_22_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: ubuntu22_x86_64_Release
    if: fromJSON(needs.smart_ci.outputs.affected_components).NVIDIA

    steps:
      - name: Download OpenVINO package
        uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
        with:
          name: openvino_package
          path: ${{ env.INSTALL_DIR }}

      - name: Download OpenVINO Developer package
        uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
        with:
          name: openvino_developer_package
          path: ${{ env.INSTALL_DIR }}

      - name: Extract OpenVINO packages
        run: |
          pushd ${INSTALL_DIR}
            pigz -dc openvino_package.tar.gz | tar -xf - -C ${INSTALL_DIR}
          popd

          pushd ${INSTALL_DIR}
            pigz -dc openvino_developer_package.tar.gz | tar -xf - -C ${INSTALL_DIR}
          popd

      - name: Clone OpenVINO Contrib
        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
        timeout-minutes: 15
        with:
          repository: 'openvinotoolkit/openvino_contrib'
          path: ${{ env.OPENVINO_CONTRIB_REPO }}
          ref: ${{ env.TARGET_BRANCH }}

      #
      # 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 $(nproc) --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_22_04_x64 }}", "volumes": ["/mount:/mount"]}'
      affected-components: ${{ needs.smart_ci.outputs.affected_components }}
      python-version: '3.11'
    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:22.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
    if: ${{ 'false' }} # Ticket: 143677

  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:22.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' }}
    if: ${{ 'false' }} # Ticket: 143677

  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, Pytorch_Layer_Tests,
            CPU_Functional_Tests, TensorFlow_Models_Tests_Precommit, PyTorch_Models_Tests, JAX_Models_Tests_Precommit, NVIDIA_Plugin, Openvino_tokenizers, iGPU,
            Keras3_OpenVINO_Backend]
    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