name: Check build
on: [push, pull_request]
jobs:
build-docs:
name: Build docs
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v2
- name: Install nightly toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: nightly
profile: minimal
override: true
- name: Add problem matchers
run: echo "::add-matcher::.github/rust.json"
- name: Build docs
env:
RUSTDOCFLAGS: --cfg docsrs
run: |
cargo doc --all-features
clippy:
name: Clippy
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v2
- name: Cache dependencies
uses: Swatinem/rust-cache@v1
- name: Add problem matchers
run: echo "::add-matcher::.github/rust.json"
- name: Run clippy
run: cargo clippy --all-features
rustfmt:
name: Format
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v2
- name: Add problem matchers
run: echo "::add-matcher::.github/rust.json"
- name: Run cargo fmt
run: cargo fmt -- --check
test:
name: Test
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v2
- name: Cache dependencies
uses: Swatinem/rust-cache@v1
- name: Add problem matchers
run: echo "::add-matcher::.github/rust.json"
- name: Run cargo test
run: cargo test --all-features
features:
name: Feature powerset
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v2
- name: Install nightly toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: nightly
profile: minimal
- name: Install cargo-hack
uses: baptiste0928/cargo-install@v1
with:
crate: cargo-hack
- name: Cache dependencies
uses: Swatinem/rust-cache@v1
- name: Add problem matchers
run: echo "::add-matcher::.github/rust.json"
- name: Check powerset
run: |
cargo hack check \
--feature-powerset \
--no-dev-deps \
--skip dnssec-openssl,dnssec-ring