trane 0.28.0

An automated system for learning complex skills
Documentation
name: Build
on:
  pull_request:
  push:
    branches:
      - master

jobs:
  test:
    name: Test Suite
    runs-on: ubuntu-latest
    steps:
      - name: Checkout sources
        uses: actions/checkout@v2

      - name: Install stable toolchain
        uses: dtolnay/rust-toolchain@master
        with:
          toolchain: stable

      - name: Setup Rust cache
        uses: Swatinem/rust-cache@v2

      - name: Install cargo-binstall
        run: curl -L --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/cargo-bins/cargo-binstall/main/install-from-binstall-release.sh | bash

      - name: Install cargo-nextest
        run: cargo binstall --no-confirm --force cargo-nextest

      - name: Run cargo nextest
        run: cargo nextest run --release

      - name: Run cargo doctests
        run: cargo test --doc --release

  lints:
    name: Lints
    runs-on: ubuntu-latest
    steps:
      - name: Checkout sources
        uses: actions/checkout@v2
        with:
          submodules: true

      - name: Install stable toolchain
        uses: dtolnay/rust-toolchain@master
        with:
          toolchain: stable

      - name: Install extra components
        run: rustup component add clippy rust-docs rustfmt 

      - name: Setup Rust cache
        uses: Swatinem/rust-cache@v2

      - name: Run cargo fmt
        run: cargo fmt --all -- --check

      - name: Run cargo clippy
        run: cargo clippy -- -D warnings

      - name: Run rustdoc lints
        env:
          RUSTDOCFLAGS: "-D missing_docs -D rustdoc::missing_doc_code_examples"
        run: cargo doc --workspace --all-features --no-deps --document-private-items