summaryrefslogtreecommitdiffstats
path: root/.github/workflows/build.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/build.yml')
-rw-r--r--.github/workflows/build.yml106
1 files changed, 95 insertions, 11 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 62a39be..7832528 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -7,14 +7,15 @@ on:
name: Build
env:
- RUSTFLAGS: '-D warnings'
+ RUSTFLAGS: '--deny warnings'
jobs:
- ci-linux:
+ build:
+ name: Build
runs-on: ubuntu-latest
strategy:
matrix:
- rust: [stable]
+ rust: [stable, beta, nightly, 1.31.0]
TARGET:
- x86_64-unknown-linux-gnu
- x86_64-unknown-linux-musl
@@ -27,17 +28,9 @@ jobs:
- thumbv7m-none-eabi
include:
- # Test MSRV
- - rust: 1.31.0
- TARGET: x86_64-unknown-linux-gnu
-
- - rust: beta
- TARGET: x86_64-unknown-linux-gnu
-
# Test nightly but don't fail
- rust: nightly
experimental: true
- TARGET: x86_64-unknown-linux-gnu
steps:
- uses: actions/checkout@v2
@@ -63,3 +56,94 @@ jobs:
with:
command: build
args: --target=${{ matrix.TARGET }}
+
+ checks:
+ name: Checks
+ runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ rust: [stable, beta]
+ TARGET:
+ - x86_64-unknown-linux-gnu
+
+ steps:
+ - uses: actions/checkout@v2
+ - uses: actions-rs/toolchain@v1
+ with:
+ profile: minimal
+ toolchain: ${{ matrix.rust }}
+ target: ${{ matrix.TARGET }}
+ override: true
+ components: clippy, rustfmt
+
+ - name: Doc
+ uses: actions-rs/cargo@v1
+ with:
+ command: doc
+
+ - name: Formatting
+ uses: actions-rs/cargo@v1
+ with:
+ command: fmt
+ args: --all -- --check
+
+ - name: Clippy
+ uses: actions-rs/clippy-check@v1
+ with:
+ token: ${{ secrets.GITHUB_TOKEN }}
+
+ test:
+ name: Tests
+ runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ rust: [stable, beta, nightly, 1.31.0]
+ TARGET: [x86_64-unknown-linux-gnu, x86_64-unknown-linux-musl]
+ include:
+ - rust: nightly
+ experimental: true
+ steps:
+ - uses: actions/checkout@v2
+ - uses: actions-rs/toolchain@v1
+ with:
+ profile: minimal
+ toolchain: ${{ matrix.rust }}
+ target: ${{ matrix.TARGET }}
+ override: true
+
+ - name: Test
+ uses: actions-rs/cargo@v1
+ with:
+ command: test
+ args: --target=${{ matrix.TARGET }}
+
+ - name: Build examples
+ uses: actions-rs/cargo@v1
+ if: contains(matrix.TARGET, 'x86_64')
+ with:
+ command: build
+ args: --target=${{ matrix.TARGET }} --examples
+
+ coverage:
+ name: Coverage
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v2
+
+ - name: Install stable toolchain
+ uses: actions-rs/toolchain@v1
+ with:
+ toolchain: stable
+ override: true
+
+ - name: Run cargo-tarpaulin
+ uses: actions-rs/tarpaulin@v0.1
+ with:
+ args: '--out Lcov -- --test-threads 1'
+
+ - name: upload to Coveralls
+ uses: coverallsapp/github-action@master
+ with:
+ github-token: ${{ secrets.GITHUB_TOKEN }}
+ path-to-lcov: './lcov.info' \ No newline at end of file