linux-embedded-hal 0.4.0

Implementation of the `embedded-hal` traits for Linux devices
Documentation
on:
  push: # Run CI for all branches except GitHub merge queue tmp branches
    branches-ignore:
    - "gh-readonly-queue/**"
  pull_request: # Run CI for PRs on any branch
  merge_group: # Run CI for the GitHub merge queue

name: Continuous integration

jobs:
  ci-linux:
    name: CI
    runs-on: ubuntu-latest

    strategy:
      fail-fast: false
      matrix:
        rust: [stable]
        target: [x86_64-unknown-linux-gnu, armv7-unknown-linux-gnueabihf]
        features:
          - ''
          - 'async-tokio,gpio_cdev,gpio_sysfs,i2c,spi'

        include:
          - rust: 1.65.0 # MSRV
            target: x86_64-unknown-linux-gnu

          # Test nightly but don't fail
          - rust: nightly
            experimental: true
            target: x86_64-unknown-linux-gnu

    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@master
        with:
          toolchain: ${{ matrix.rust }}
          target: ${{ matrix.target }}

      - name: Install armv7 libraries
        if: ${{ matrix.target == 'armv7-unknown-linux-gnueabihf' }}
        run: |
            sudo apt-get update
            sudo apt-get install -y libc6-armhf-cross libc6-dev-armhf-cross gcc-arm-linux-gnueabihf

      - run: cargo check --target=${{ matrix.target }} --features=${{ matrix.features }}