i2cdev 0.6.1

Provides API for safe access to Linux i2c device interface.
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: CI

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

    strategy:
      matrix:
        # All generated code should be running on stable now
        rust: [stable]

        # The default target we're compiling on and for
        TARGET: [x86_64-unknown-linux-gnu, armv7-unknown-linux-gnueabihf]

        include:
          # Test MSRV
          - rust: 1.65.0
            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@v3
      - 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 test --target=${{ matrix.TARGET }}
        if: ${{ matrix.TARGET != 'armv7-unknown-linux-gnueabihf' }}

      - run: cargo build --target=${{ matrix.TARGET }}
        if: ${{ matrix.TARGET == 'armv7-unknown-linux-gnueabihf' }}

  ci-macos:
    name: CI-macOS
    runs-on: macos-11

    strategy:
      matrix:
        rust: [stable, 1.65.0]
        TARGET: [x86_64-apple-darwin]

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

      - run: cargo build --target=${{ matrix.TARGET }}