on: [push, pull_request]
name: Rust CI
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- name: Build default features
run: cargo build
- name: Build with all features
run: cargo build --all-features
check:
name: Check
runs-on: ubuntu-latest
needs: build
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- name: Check
run: cargo check --all-features
test:
name: Test Suite
runs-on: ubuntu-latest
needs: build
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- name: Test
run: cargo test --all-features
clippy:
name: Clippy
runs-on: ubuntu-latest
needs: build
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- name: Clippy
run: cargo clippy -- -D warnings
doc:
name: Rustdoc
runs-on: ubuntu-latest
needs: build
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- name: Rustdoc
run: cargo doc --all-features
build-nightly:
name: Build [nightly]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@nightly
with:
components: rustfmt
- name: Rustfmt [nightly]
run: cargo fmt --all -- --check
- name: Build [nightly]
run: cargo build
- name: Build with all features [nightly]
run: cargo build --all-features
- name: Check [nightly]
run: cargo check --all-features
- name: Rustdoc [nightly]
env:
RUSTDOCFLAGS: "--cfg docsrs"
run: cargo doc --all-features
- name: Deploy docs
uses: stbuehler/action-rs-deploy-doc@v1
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
with:
target: git@github.com:stbuehler/rustdocs
target-folder: bitstring
ssh-private-key: ${{ secrets.RUSTDOCS_SSH_ED25519 }}