mipidsi 0.10.0

MIPI Display Command Set compatible generic driver
Documentation
on:
  push:
    branches: [ staging, trying, master ]
  pull_request:

name: Continuous integration

jobs:
  ci-linux:
    runs-on: ubuntu-22.04
    continue-on-error: ${{ matrix.experimental || false }}
    strategy:
      matrix:
        # All generated code should be running on stable now, MSRV is 1.75.0
        rust: [nightly, stable, 1.75.0]
        buildflags: [--no-default-features, ""]

        include:
          # Nightly is only for reference and allowed to fail
          - rust: nightly
            experimental: true

    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@master
        with:
          toolchain: ${{ matrix.rust }}
      - name: Run CI script for x86_64-unknown-linux-gnu
        run: |
          cargo check ${{ matrix.buildflags }}
      - name: Run tests
        run: |
          cargo test

  # On macOS and Windows, we at least make sure that the crate builds and links.
  build-other:
    strategy:
      matrix:
        os:
          - macOS-latest
          - windows-latest
        buildflags: [--no-default-features, ""]
    runs-on: ${{ matrix.os }}

    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@stable
      - name: Build crate for host OS
        run: |
          cargo build ${{ matrix.buildflags }}
      - name: Test on host OS
        run: |
          cargo test

  build-example:
    name: Build example
    runs-on: ubuntu-22.04
    strategy:
      fail-fast: false
      matrix:
        example:
          - parallel_ili9341_rp_pico
          - spi-ili9486-esp32-c3
          - spi-st7789-rpi-zero-w
        include:
          - target: thumbv6m-none-eabi
            example: parallel_ili9341_rp_pico
          - target: riscv32imc-unknown-none-elf
            example: spi-ili9486-esp32-c3
          - target: arm-unknown-linux-gnueabihf
            example: spi-st7789-rpi-zero-w

    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@stable
        with:
          target: ${{ matrix.target }}
      - if: ${{ startsWith(matrix.target, 'arm') }}
        run: |
          sudo apt-get update
          sudo apt-get install gcc-arm-linux-gnueabihf
      - run: cargo install flip-link
      - name: Build ${{ matrix.example }} example
        run: cargo build --target ${{ matrix.target }}
        working-directory: ./examples/${{ matrix.example }}

  build-docs:
    runs-on: ubuntu-22.04

    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@stable
      - name: Build docs
        run: |
          RUSTDOCFLAGS=-Dwarnings cargo doc