From c3a293ee77d1bf6f1c05be4b607eb114e7939b5a Mon Sep 17 00:00:00 2001 From: Sven Rademakers Date: Thu, 12 Oct 2023 10:45:06 +0100 Subject: [PATCH] Add cargo verification pipeline This CI pipeline runs some trivial jobs on every commit to check: * unit-tests are passing * linter did not find any improvements * "default" cargo-deny pass on licenses, source code --- .github/workflows/cargo_ci.yml | 35 ++++++++++++++++++++++++++++++++++ deny.toml | 26 +++++++++++++++++++++++++ 2 files changed, 61 insertions(+) create mode 100644 .github/workflows/cargo_ci.yml create mode 100644 deny.toml diff --git a/.github/workflows/cargo_ci.yml b/.github/workflows/cargo_ci.yml new file mode 100644 index 0000000..7fb7d7f --- /dev/null +++ b/.github/workflows/cargo_ci.yml @@ -0,0 +1,35 @@ +name: 'Cargo CI' +on: push + +jobs: + cargo-clippy: + runs-on: ubuntu-latest + steps: + - run: | + sudo apt-get update &&\ + sudo apt-get install libusb-1.0-0-dev -y + - uses: actions/checkout@v3 + - run: rustup component add clippy + - uses: actions-rs/clippy-check@v1 + with: + token: '${{ secrets.GITHUB_TOKEN }}' + args: '--all-features -- -D warnings' + cargo-test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions-rs/toolchain@v1 + with: + toolchain: stable + default: true + profile: minimal + - uses: actions-rs/cargo@v1 + with: + command: test + cargo-deny: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: EmbarkStudios/cargo-deny-action@v1 + with: + command: check bans licenses sources diff --git a/deny.toml b/deny.toml new file mode 100644 index 0000000..9190130 --- /dev/null +++ b/deny.toml @@ -0,0 +1,26 @@ +[licenses] +unlicensed = "deny" +allow = [ + "MIT", + "Apache-2.0", + "Apache-2.0 WITH LLVM-exception", + "BSD-3-Clause", + "Unicode-DFS-2016", + "Zlib", +] +deny = [ + "Nokia", +] +copyleft = "deny" +allow-osi-fsf-free = "neither" +default = "deny" +confidence-threshold = 0.8 + +[[licenses.clarify]] +name = "ring" +version = "*" +expression = "MIT AND ISC AND OpenSSL" +license-files = [ + { path = "LICENSE", hash = 0xbd0eed23 } +] +