lpc55 0.2.1

Host-side tooling to interact with LPC55 chips via the ROM bootloader
Documentation
name: CI

on: [push, pull_request]

jobs:
  artifacts:
    name: ${{ matrix.target }}
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        target:
          # - x86_64-unknown-linux-musl
          - x86_64-unknown-linux-gnu
          # - aarch64-unknown-linux-musl
          # - armv7-unknown-linux-musleabihf
          # - arm-unknown-linux-musleabihf
          - x86_64-pc-windows-msvc
          - x86_64-apple-darwin
        include:
          - os: ubuntu-latest
            target: x86_64-unknown-linux-gnu
            artifact_name: target/x86_64-unknown-linux-gnu/release/lpc55
            release_name: lpc55-linux
            cross: false
            strip: true
          # - os: ubuntu-latest
          #   target: x86_64-unknown-linux-musl
          #   artifact_name: target/x86_64-unknown-linux-musl/release/lpc55
          #   release_name: linux-x86_64
          #   cross: false
          #   strip: true
          # - os: ubuntu-latest
          #   target: aarch64-unknown-linux-musl
          #   artifact_name: target/aarch64-unknown-linux-musl/release/lpc55
          #   release_name: linux-aarch64
          #   cross: true
          #   strip: false
          # - os: ubuntu-latest
          #   target: armv7-unknown-linux-musleabihf
          #   artifact_name: target/armv7-unknown-linux-musleabihf/release/lpc55
          #   release_name: linux-armv7
          #   cross: true
          #   strip: false
          # - os: ubuntu-latest
          #   target: arm-unknown-linux-musleabihf
          #   artifact_name: target/arm-unknown-linux-musleabihf/release/lpc55
          #   release_name: linux-arm
          #   cross: true
          #   strip: false
          - os: windows-latest
            target: x86_64-pc-windows-msvc
            artifact_name: target/x86_64-pc-windows-msvc/release/lpc55.exe
            release_name: lpc55-windows
            cross: false
            strip: true
          - os: macos-latest
            target: x86_64-apple-darwin
            artifact_name: target/x86_64-apple-darwin/release/lpc55
            release_name: lpc55-macos
            cross: false
            strip: true

    steps:
      - name: Checkout code
        uses: actions/checkout@v2

      - name: Setup Rust toolchain
        uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
          target: ${{ matrix.target }}

      - name: Install libudev for Linux
        run: sudo apt-get update -qq && sudo apt-get install -qq libudev-dev > /dev/null
        if: matrix.os == 'ubuntu-latest'

      - name: cargo fmt
        if: matrix.os == 'ubuntu-latest'
        uses: actions-rs/cargo@v1
        with:
          command: fmt
          args: --all -- --check

      - name: cargo clippy
        if: matrix.os == 'ubuntu-latest'
        uses: actions-rs/cargo@v1
        with:
          command: clippy
          args: -- -D warnings

      - name: cargo build
        uses: actions-rs/cargo@v1
        with:
          command: build
          args: --release --target=${{ matrix.target }} --verbose
          use-cross: ${{ matrix.cross }}

      - name: Run tests
        run:
          cargo test

      # - uses: actions/upload-artifact@v2
      #   with:
      #     name: ${{ matrix.release_name }}
      #     path: ${{ matrix.artifact_name }}