summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2021-05-05 18:18:27 +0200
committerMatthias Beyer <mail@beyermatthias.de>2021-05-05 21:09:52 +0200
commit214fb184fdba639642ecf1fdef7a78388d4e08a7 (patch)
tree5ebab365800c64e89659b5da3fcba3652b2afa23
parent1ebfa387fa5d47e3200b990f63f55bbe36adeff1 (diff)
Add github action for CIgithub-actions
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
-rw-r--r--.github/workflows/ci.yml89
1 files changed, 89 insertions, 0 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 0000000..55cafc2
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -0,0 +1,89 @@
+on: [push]
+
+name: CI
+
+jobs:
+ cargo-deny:
+ name: cargo-deny
+ runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ checks:
+ - advisories
+ - bans licenses sources
+
+ # Prevent sudden announcement of a new advisory from failing ci:
+ continue-on-error: ${{ matrix.checks == 'advisories' }}
+
+ steps:
+ - uses: actions/checkout@v2
+ - uses: EmbarkStudios/cargo-deny-action@v1
+ with:
+ command: check ${{ matrix.checks }}
+
+ check:
+ needs: [cargo-deny]
+ name: Check
+ runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ rust:
+ - 1.50.0
+ - stable
+ - beta
+
+ steps:
+ - name: Checkout sources
+ uses: actions/checkout@v2
+
+ - name: Install toolchain
+ uses: actions-rs/toolchain@v1
+ with:
+ toolchain: ${{ matrix.rust }}
+ override: true
+
+ - name: Run cargo check
+ uses: actions-rs/cargo@v1
+ with:
+ command: check
+
+ test:
+ needs: [check]
+ name: Test Suite
+ runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ rust:
+ - 1.50.0
+ - stable
+ - beta
+ steps:
+ - name: Checkout sources
+ uses: actions/checkout@v2
+
+ - name: Install toolchain
+ uses: actions-rs/toolchain@v1
+ with:
+ toolchain: ${{ matrix.rust }}
+ override: true
+
+ - name: Run cargo test
+ uses: actions-rs/cargo@v1
+ with:
+ command: test
+ args: --all --all-features
+
+ lint:
+ needs: [check]
+ name: Lint
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - uses: actions-rs/toolchain@v1
+ with:
+ toolchain: 1.50.0
+ override: true
+ - run: rustup component add clippy
+ - name: cargo clippy
+ run: cargo clippy --all --all-targets --all-features -- -D warnings
+