From c8a4e4c45127d241df179441c663c0baa7e4726f Mon Sep 17 00:00:00 2001 From: Bogdan Opanchuk Date: Sat, 12 Oct 2024 14:11:09 -0700 Subject: [PATCH] Add CI actions --- .github/workflows/manul.yml | 97 +++++++++++++++++++++++++++++++++++++ manul/Cargo.toml | 1 + 2 files changed, 98 insertions(+) create mode 100644 .github/workflows/manul.yml diff --git a/.github/workflows/manul.yml b/.github/workflows/manul.yml new file mode 100644 index 0000000..6c8e2df --- /dev/null +++ b/.github/workflows/manul.yml @@ -0,0 +1,97 @@ +name: crypto-primes +on: + workflow_dispatch: + pull_request: + paths-ignore: [README.md] + push: + branches: master + paths-ignore: [README.md] + +env: + CARGO_INCREMENTAL: 0 + RUSTFLAGS: "-Dwarnings" + +jobs: + build: + runs-on: ubuntu-latest + strategy: + matrix: + rust: + - 1.81.0 # MSRV + - stable + target: + - wasm32-unknown-unknown + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@v1 + with: + toolchain: ${{ matrix.rust }} + targets: ${{ matrix.target }} + - run: cargo build --target ${{ matrix.target }} --no-default-features + - run: cargo build --target ${{ matrix.target }} + + codecov: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@v1 + with: + profile: minimal + toolchain: stable + target: x86_64-unknown-linux-gnu + override: true + - name: Install cargo-llvm-cov + uses: taiki-e/install-action@cargo-llvm-cov + - name: Generate code coverage + run: cargo llvm-cov --workspace --lcov --output-path lcov.info + - name: Upload coverage to Codecov + uses: codecov/codecov-action@v4 + with: + token: ${{ secrets.CODECOV_TOKEN }} + files: lcov.info + fail_ci_if_error: true + + tests: + runs-on: ubuntu-latest + strategy: + matrix: + include: + - target: x86_64-unknown-linux-gnu + rust: stable + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@v1 + with: + toolchain: ${{ matrix.rust }} + target: ${{ matrix.target }} + profile: minimal + override: true + - run: ${{ matrix.deps }} + - run: cargo test --target ${{ matrix.target }} + + clippy: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions-rs/toolchain@v1 + with: + toolchain: 1.81.0 # MSRV + components: clippy + override: true + profile: minimal + - run: cargo clippy --all --all-features --tests --benches -- -D warnings + + rustfmt: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@v1 + with: + toolchain: stable + components: rustfmt + profile: minimal + override: true + - uses: actions-rs/cargo@v1 + with: + command: fmt + args: --all -- --check diff --git a/manul/Cargo.toml b/manul/Cargo.toml index fc19bd1..d94561d 100644 --- a/manul/Cargo.toml +++ b/manul/Cargo.toml @@ -2,6 +2,7 @@ name = "manul" version = "0.0.1" edition = "2021" +rust-version = "1.81" authors = ['Entropy Cryptography '] license = "AGPL-3.0-or-later" description = "Generic library for round-based protocols"