virtio-drivers 0.13.0

VirtIO guest drivers.
Documentation
name: CI

on:
  push:
    branches: [master]
  pull_request:

jobs:
  check:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - name: Check code format
        uses: actions-rs/cargo@v1
        with:
          command: fmt
          args: --all -- --check
      - name: Clippy
        uses: actions-rs/clippy-check@v1
        with:
          token: ${{ secrets.GITHUB_TOKEN }}

  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - name: Build with no features
        uses: actions-rs/cargo@v1
        with:
          command: build
          args: --no-default-features
      - name: Build with all features
        uses: actions-rs/cargo@v1
        with:
          command: build
          args: --all-features
      - name: Docs
        uses: actions-rs/cargo@v1
        with:
          command: doc
      - name: Test with no features
        uses: actions-rs/cargo@v1
        with:
          command: test
          args: --no-default-features
      - name: Test with all features
        uses: actions-rs/cargo@v1
        with:
          command: test
          args: --all-features

  examples:
    runs-on: ubuntu-24.04
    strategy:
      fail-fast: false
      matrix:
        example:
          - aarch64
          - riscv
          - x86_64
        include:
          - example: aarch64
            packages: qemu-system-arm gcc-aarch64-linux-gnu
          - example: riscv
            packages: qemu-system-misc
          - example: x86_64
            packages: qemu-system-x86
    steps:
      - uses: actions/checkout@v6
      - name: Install QEMU
        run: sudo apt update && sudo apt install ${{ matrix.packages }} && sudo chmod 666 /dev/vhost-vsock
      - name: Check code format
        working-directory: examples/${{ matrix.example }}
        run: cargo fmt --all -- --check
      - name: Build
        working-directory: examples/${{ matrix.example }}
        run: make kernel
      - name: Run
        timeout-minutes: 1
        working-directory: examples/${{ matrix.example }}
        run: QEMU_ARGS="-display none -audiodev none,id=audio0" make qemu accel="off"