name: Intel GPU

# Intel runners are currently unavailable, so this suite is manual-only
# (mirrors NVIDIA GPU, but without a schedule). Removing the push / pull_request /
# merge_group triggers keeps it out of PR checks and the merge queue until the
# runners are healthy again; only Checkstyle runs in the merge queue for now.
on:
  workflow_dispatch:  # Enables manual trigger

concurrency:
  # This causes it to cancel previous in-progress actions on the same PR / branch,
  group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.event.merge_group.head_ref || github.ref }}
  cancel-in-progress: true

jobs:
  tests:
    runs-on: linux-max1550-pvc-8
    if: success()
    container:
      image: intel/oneapi-basekit:2025.0.1-0-devel-ubuntu24.04
      options: --privileged -v /dev/dri/by-path:/dev/dri/by-path --device=/dev/dri --ipc=host
    steps:
    - name: Set up python
      shell: bash
      run: |
        apt-get update && \
        apt-get install -y python3.12-venv python3-pip && \
        ln -sf /usr/bin/python3 /usr/bin/python && \
        apt-get clean && rm -rf /var/lib/apt/lists/*

    - name: Checkout code
      uses: actions/checkout@v6
      
    - name: Setup Dependencies
      shell: bash
      run: |
        python -m venv test-env
        . test-env/bin/activate
        pip install -e .[dev] --extra-index-url https://download.pytorch.org/whl/test/xpu

    - name: List Python Environments
      shell: bash
      run: |
        . test-env/bin/activate
        python -m pip list
    
    - name: Run Unit Tests
      shell: bash
      run: |
        . test-env/bin/activate
        make test
        make test-convergence
