name: CI (virtgpu)

on:
  workflow_dispatch: # allows manual triggering
  push:
    branches:
      - master
    paths: [
      '.github/workflows/build-virtgpu.yml',
      '**/CMakeLists.txt',
      '**/.cmake',
      '**/*.h',
      '**/*.hpp',
      '**/*.c',
      '**/*.cpp'
    ]

  pull_request:
    types: [opened, synchronize, reopened]
    paths: [
      '.github/workflows/build-virtgpu.yml',
      'ggml/src/ggml-virtgpu/**'
    ]

concurrency:
  group: ${{ github.workflow }}-${{ github.head_ref && github.ref || github.run_id }}
  cancel-in-progress: true

jobs:
  ubuntu-24-virtgpu:
    runs-on: ${{ 'ubuntu-24.04-arm' || 'ubuntu-24.04' }}

    steps:
      - name: Clone
        id: checkout
        uses: actions/checkout@v6

      - name: Dependencies
        id: depends
        run: |
          sudo apt-get update
          sudo apt-get install -y build-essential libdrm-dev pkg-config libssl-dev

      - name: Build
        id: cmake_build
        run: |
          cmake -B build \
            -DGGML_VIRTGPU=ON \
            -DGGML_VIRTGPU_BACKEND=ON
          cmake --build build --config Release -j $(nproc)
