name: Continuous Integration | |
on: | |
pull_request: | |
paths: | |
- "**.rs" | |
- "Cargo.toml" | |
- "Cargo.lock" | |
jobs: | |
fmt: | |
name: Source formatting check | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v2 | |
- name: Install Rust toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: nightly | |
override: true | |
components: rustfmt | |
- name: Check formatting | |
uses: actions-rs/cargo@v1 | |
with: | |
command: fmt | |
args: -- --check | |
check: | |
name: Compilation check | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: true | |
matrix: | |
rust: | |
- stable | |
- beta | |
- nightly | |
- 1.41.0 | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v2 | |
- name: Install Rust toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: ${{ matrix.rust }} | |
override: true | |
- name: Run cargo check | |
uses: actions-rs/cargo@v1 | |
with: | |
command: check | |
clippy: | |
name: Lint check | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v2 | |
- name: Install Rust toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: stable | |
override: true | |
components: clippy | |
- name: Run lints | |
uses: actions-rs/cargo@v1 | |
with: | |
command: clippy | |
args: -- -D warnings | |
ci-crate: | |
name: CI crate check | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v2 | |
- name: Install Rust toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
- name: Run ci crate | |
uses: actions-rs/cargo@v1 | |
with: | |
command: run | |
args: -p ci | |
crate-example: | |
name: Crate example check | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v2 | |
- name: Install Rust toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
- name: Run crate example | |
uses: actions-rs/cargo@v1 | |
with: | |
command: run | |
args: --example default |