opencl3 0.12.3

A Rust implementation of the Khronos OpenCL 3.0 API and extensions.
Documentation
name: Rust

on:
  push:
    branches: [ main, develop ]
  pull_request:
    branches: [ develop ]

env:
  CARGO_TERM_COLOR: always

jobs:
  check:
    name: Check
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Install Rust
        run: rustup update stable
      - name: Unit test
        run: cargo check

  build:
    name: Build
    runs-on: ubuntu-latest

    steps:
    - name: Load OpenCL
      run: |
        wget -qO - https://repositories.intel.com/graphics/intel-graphics.key |
          sudo apt-key add -
        sudo add-apt-repository \
          'deb [arch=amd64] https://repositories.intel.com/graphics/ubuntu focal main'
        sudo apt-get update
        sudo apt-get install \
          intel-opencl-icd \
          intel-level-zero-gpu level-zero \
          intel-media-va-driver-non-free libmfx1
        sudo apt-get install ocl-icd-opencl-dev

    - uses: actions/checkout@v4
    - name: Install Rust
      run: rustup update stable
    - name: Build
      run: cargo build --verbose
    # Tests "runs-on:" a GPU hosted runner which requires an enterprise subscription...
    # - name: Run tests
    #   run: cargo test -- --test-threads=1

  clippy:
    name: Clippy
    runs-on: ubuntu-latest
    env:
      RUSTFLAGS: "-Dwarnings"
    steps:
      - uses: actions/checkout@v4
      - name: Install Rust
        run: rustup update stable
      - name: Run Clippy
        run: cargo clippy --all-features