writedisk 1.5.0

Utility for writing a disk image to a USB drive
on:
  push:
    branches:
      - main
  pull_request:
  schedule:
    - cron: '0 0 * * 0'

name: CI

jobs:
  check:
    name: Check
    runs-on: ubuntu-24.04
    steps:
      - uses: actions/checkout@v5
      - uses: Swatinem/rust-cache@v2
      - run: cargo check --workspace

  test:
    name: Test Suite
    runs-on: ubuntu-24.04
    steps:
      - uses: actions/checkout@v5
      - uses: Swatinem/rust-cache@v2
      - run: cargo test --workspace

  fmt:
    name: Rustfmt
    runs-on: ubuntu-24.04
    steps:
      - uses: actions/checkout@v5
      - run: cargo fmt --all -- --check

  clippy:
    name: Clippy
    runs-on: ubuntu-24.04
    steps:
      - uses: actions/checkout@v5
      - uses: Swatinem/rust-cache@v2
      - run: cargo clippy --workspace -- -D warnings

  vmtest:
    name: VM test
    runs-on: ubuntu-24.04
    steps:
      - uses: actions/checkout@v5
      - run: |
          sudo apt-get update
          sudo apt-get install qemu-system-x86
      - run: rustup target add x86_64-unknown-linux-musl
      - uses: Swatinem/rust-cache@v2
      - run: cargo xtask vmtest --disable-kvm
        env:
          RUST_BACKTRACE: 1