on: [push, pull_request]
name: Rust CI
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Cache stable
uses: actions/cache@v2
with:
key: build-stable-${{ github.run_id }}
path: |
/usr/share/rust/.cargo/
target/
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
- name: Build
uses: actions-rs/cargo@v1
with:
command: build
- name: Build with all features
uses: actions-rs/cargo@v1
with:
command: build
args: --all-features
check:
name: Check
runs-on: ubuntu-latest
needs: build
steps:
- uses: actions/checkout@v2
- name: Cache stable
uses: actions/cache@v2
with:
key: build-stable-${{ github.run_id }}
path: |
/usr/share/rust/.cargo/
target/
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
- name: Check
uses: actions-rs/cargo@v1
with:
command: check
args: --all-features
test:
name: Test Suite
runs-on: ubuntu-latest
needs: build
steps:
- uses: actions/checkout@v2
- name: Cache stable
uses: actions/cache@v2
with:
key: build-stable-${{ github.run_id }}
path: |
/usr/share/rust/.cargo/
target/
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
- name: Test
uses: actions-rs/cargo@v1
with:
command: test
args: --all-features
clippy:
name: Clippy
runs-on: ubuntu-latest
needs: build
steps:
- uses: actions/checkout@v2
- name: Cache stable
uses: actions/cache@v2
with:
key: build-stable-${{ github.run_id }}
path: |
/usr/share/rust/.cargo/
target/
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
components: clippy
- name: Clippy
uses: actions-rs/cargo@v1
with:
command: clippy
args: -- -D warnings
doc:
name: Rustdoc
runs-on: ubuntu-latest
needs: build
steps:
- uses: actions/checkout@v2
- name: Cache stable
uses: actions/cache@v2
with:
key: build-stable-${{ github.run_id }}
path: |
/usr/share/rust/.cargo/
target/
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
- name: Rustdoc
uses: actions-rs/cargo@v1
with:
command: doc
args: --all-features
build-nightly:
name: Build [nightly]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: nightly
override: true
components: rustfmt
- name: Rustfmt [nightly]
uses: actions-rs/cargo@v1
with:
command: fmt
args: --all -- --check
- name: Build [nightly]
uses: actions-rs/cargo@v1
with:
command: build
- name: Build with all features [nightly]
uses: actions-rs/cargo@v1
with:
command: build
args: --all-features
- name: Check [nightly]
uses: actions-rs/cargo@v1
with:
command: check
args: --all-features
- name: Rustdoc [nightly]
uses: actions-rs/cargo@v1
env:
RUSTDOCFLAGS: "--cfg doc_cfg"
with:
command: doc
args: --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-trees
ssh-private-key: ${{ secrets.RUSTDOCS_SSH_ED25519 }}