Skip to content

feat: async serial #596

feat: async serial

feat: async serial #596

Workflow file for this run

name: Test all targets
on: [push, pull_request]
jobs:
formatting:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt
- name: Run rustfmt
run: cargo fmt --all -- --check
linting:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- uses: dtolnay/rust-toolchain@master
with:
toolchain: nightly-2024-09-10
components: clippy
- uses: actions-rs-plus/clippy-check@v2
with:
args: --all --all-targets --features format-generated-code --features signing --features tokio-1
internal-tests:
runs-on: ubuntu-latest
strategy:
matrix:
dialect: ["ardupilotmega", "asluav", "matrixpilot", "minimal", "paparazzi", "python_array_test", "slugs", "standard", "test", "ualberta", "uavionix", "icarous", "common"]
signing: ["", "--features signing"]
steps:
- uses: actions/checkout@master
- uses: dtolnay/rust-toolchain@stable
- name: Run internal tests
run: cargo test --verbose --features ${{ matrix.dialect }} ${{ matrix.signing }} -- --nocapture
mavlink-dump:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- uses: dtolnay/rust-toolchain@stable
- name: Build mavlink-dump
run: cargo build --verbose --example mavlink-dump
msrv:
runs-on: ubuntu-latest
strategy:
matrix:
features: ["", "--features serde,tokio-1", "--features signing"]
steps:
- uses: actions/checkout@master
- name: Get MSRV from Cargo.toml
run: |
MSRV=$(grep 'rust-version' Cargo.toml | sed 's/.*= *"\(.*\)".*/\1/')
echo "MSRV=$MSRV" >> $GITHUB_ENV
- uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ env.MSRV }}
- uses: taiki-e/install-action@cargo-no-dev-deps
- run: cargo no-dev-deps check --all --lib --bins ${{ matrix.features }}
build:
needs: [formatting, linting, internal-tests, mavlink-dump, msrv]
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- os: macos-latest
TARGET: x86_64-apple-darwin
FEATURES: --features ardupilotmega
- 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 ardupilotmega
- os: ubuntu-latest
TARGET: x86_64-unknown-linux-musl
FLAGS: --features ardupilotmega,emit-description,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 ardupilotmega
steps:
- name: Building ${{ matrix.TARGET }}
run: echo "${{ matrix.TARGET }}"
- uses: actions/checkout@master
- uses: dtolnay/rust-toolchain@stable
with:
target: ${{ matrix.TARGET }}
- uses: actions-rs/cargo@v1
with:
use-cross: true
command: build
args: --verbose --release --package=mavlink --target=${{ matrix.TARGET }} ${{ matrix.FLAGS }}
test-embedded-size:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- uses: dtolnay/rust-toolchain@nightly
with:
target: thumbv7em-none-eabihf
- name: Build
run: cargo +nightly build --target thumbv7em-none-eabihf --manifest-path mavlink/examples/embedded/Cargo.toml --out-dir $PWD --release -Z unstable-options
docs:
needs: internal-tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- uses: dtolnay/rust-toolchain@nightly
- name: Build docs
run: cargo doc --features "default all-dialects emit-description emit-extensions format-generated-code tokio-1 signing"
- name: Deploy
uses: peaceiris/actions-gh-pages@v3
if: ${{ github.ref == 'refs/heads/master' }}
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./target/doc