aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows/ci.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/ci.yml')
-rw-r--r--.github/workflows/ci.yml61
1 files changed, 61 insertions, 0 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 0000000..905cbf5
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -0,0 +1,61 @@
+on:
+ push:
+ branches: [ master ]
+ pull_request:
+ branches: [ master ]
+
+name: CI
+
+jobs:
+ ci:
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ matrix:
+ rust:
+ - 1.36.0 # MSRV
+ - stable
+ - beta
+ - nightly
+ features:
+ - ""
+ - "serde"
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+
+ - name: Set up Rust
+ uses: dtolnay/rust-toolchain@master
+ with:
+ toolchain: ${{ matrix.rust }}
+
+ - name: Build (no_std)
+ run: cargo build --no-default-features
+
+ - name: Build
+ run: cargo build --features "${{ matrix.features }}"
+
+ - name: Test
+ run: cargo test --features "${{ matrix.features }}"
+
+ - name: Doc
+ run: cargo doc --features "${{ matrix.features }}"
+
+ clippy:
+ name: Rustfmt and Clippy
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+
+ - name: Set up nightly Rust
+ uses: dtolnay/rust-toolchain@nightly
+ with:
+ components: rustfmt, clippy
+
+ - name: Rustfmt
+ run: cargo fmt --all -- --check
+
+ - name: Clippy
+ run: cargo clippy # -- -D warnings