hackrfone 0.2.3

Rust library for the HackRF One software defined radio.
Documentation
on:
  push:
    branches:
      - main
    tags:
      - 'v*'
  pull_request:
  schedule:
    - cron: "13 3 * * *"

name: CI

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2.3.4
      - uses: actions-rs/toolchain@v1.0.7
        with:
          toolchain: stable
      - run: RUSTFLAGS="-D warnings" cargo build
      - run: RUSTFLAGS="-D warnings" cargo build --features num-complex
      - run: RUSTFLAGS="-D warnings" cargo build --all-features

  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2.3.4
      - uses: actions-rs/toolchain@v1.0.7
        with:
          toolchain: stable
      - run: cargo test --all-features

  clippy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2.3.4
      - uses: actions-rs/toolchain@v1.0.7
        with:
          toolchain: stable
          components: clippy
      - uses: actions-rs/clippy-check@v1.0.7
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          args: --all-features

  format:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2.3.4
      - uses: actions-rs/toolchain@v1.0.7
        with:
          toolchain: nightly
          components: rustfmt
      - run: cargo +nightly fmt -- --check

  doc:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2.3.4
      - uses: actions-rs/toolchain@v1.0.7
        with:
          toolchain: stable
      - run: cargo doc --no-default-features
      - run: cargo doc --all-features

  rustdoc:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2.3.4
      - uses: actions-rs/toolchain@v1.0.7
        with:
          toolchain: nightly
      - run: RUSTDOCFLAGS='--cfg docsrs' cargo +nightly rustdoc --all-features

  release:
    name: crates.io release
    if: startsWith(github.ref, 'refs/tags/v')
    needs: [build, test, clippy, format, doc, rustdoc]
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2.3.4
      - uses: actions-rs/toolchain@v1.0.7
        with:
          toolchain: stable
      - run: cargo publish --token ${CRATES_IO_TOKEN}
        env:
          CRATES_IO_TOKEN: ${{ secrets.CRATES_IO_TOKEN }}