mavlink 0.10.14

Implements the MAVLink data interchange format for UAVs.
Documentation
name: Test all targets

on: [push, pull_request]

jobs:
  quick-tests:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@master
    - uses: actions-rs/toolchain@v1.0.1
      with:
        toolchain: stable
        target: ${{ matrix.TARGET }}
        override: true
    - name: Check Type
      run: cargo fmt -- --check
    - name: Run internal tests
      run: cargo test --verbose --features all-dialects -- --nocapture
    - name: Build mavlink-dump
      run: cargo build --verbose --bin mavlink-dump --features ardupilotmega

  build:
    needs: quick-tests
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        include:
        - os: macos-latest
          TARGET: x86_64-apple-darwin
          FEATURES: --features all-dialects

        - os: ubuntu-latest
          TARGET: arm-unknown-linux-musleabihf
          FLAGS: --features ardupilotmega

        - os: ubuntu-latest
          TARGET: armv7-unknown-linux-musleabihf
          FLAGS: --features ardupilotmega

        - os: ubuntu-latest
          TARGET: x86_64-unknown-linux-musl
          FLAGS: --features all-dialects

        - os: ubuntu-latest
          TARGET: x86_64-unknown-linux-musl
          FLAGS: --features all-dialects,emit-extensions

        - os: ubuntu-latest
          TARGET: thumbv7m-none-eabi
          FLAGS: --no-default-features --features embedded

        - os: windows-latest
          TARGET: x86_64-pc-windows-msvc
          FLAGS: --features all-dialects

    steps:
    - name: Building ${{ matrix.TARGET }}
      run: echo "${{ matrix.TARGET }}"
    - uses: actions/checkout@master
    - uses: actions-rs/toolchain@v1.0.1
      with:
        toolchain: stable
        target: ${{ matrix.TARGET }}
        override: true
    - uses: actions-rs/cargo@v1
      with:
        use-cross: true
        command: build
        args: --verbose --release --target=${{ matrix.TARGET }} ${{ matrix.FLAGS }}

  test-embedded-size:
    needs: build
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@master
    - uses: actions-rs/toolchain@v1.0.1
      with:
        toolchain: nightly
        target: thumbv7em-none-eabihf
        override: true
    - name: Build
      run: cargo +nightly build --target thumbv7em-none-eabihf --manifest-path examples/embedded/Cargo.toml --artifact-dir $PWD --release -Z unstable-options