arnaucube
arnaucube/miden-cryptoPublic Self-hosted repository
chore(ci): add github ci script

This commit introduces a script that will enforce the following
constraints:

- Tests are successful
- Rustfmt is executed for every Rust source
- Clippy warnings are resolved

The same model of Miden VM is adopted here. However, `no-std` check
wasn't added because the library, as of the moment, doesn't implement
that.

closes #3
Victor Lopez victor@codx.io
Thu, 20 Oct 2022 18:10:51 +0200
commit

940fd662cc74c5221adf5ea83a7fdec4d2f62dc5

parent

e9ef2a9be831e7c5cb150433b6acde8f01b7ebed

2 files changed, 75 insertions(+), 0 deletions(-)

jump to
A .github/pull_request_template.md

@@ -0,0 +1,9 @@

+## Describe your changes + + +## Checklist before requesting a review +- Repo forked and branch created from `next` according to naming convention. +- Commit messages and codestyle follow [conventions](./CONTRIBUTING.md). +- Relevant issues are linked in the PR description. +- Tests added for new functionality. +- Documentation/comments updated according to changes.
A .github/workflows/ci.yml

@@ -0,0 +1,66 @@

+name: CI +on: + push: + branches: + - main + pull_request: + types: [opened, repoened, synchronize] + +jobs: + test: + name: Test Rust ${{matrix.toolchain}} on ${{matrix.os}} + runs-on: ${{matrix.os}}-latest + strategy: + fail-fast: false + matrix: + toolchain: [stable, nightly] + os: [ubuntu] + steps: + - uses: actions/checkout@main + - name: Install rust + uses: actions-rs/toolchain@v1 + with: + toolchain: ${{matrix.toolchain}} + override: true + - name: Test + uses: actions-rs/cargo@v1 + with: + command: test + + clippy: + name: Clippy + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@main + - name: Install minimal stable with clippy + uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: stable + components: clippy + override: true + + - name: Clippy + uses: actions-rs/cargo@v1 + with: + command: clippy + args: --all -- -D clippy::all -D warnings + + rustfmt: + name: rustfmt + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@main + - name: Install minimal stable with rustfmt + uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: stable + components: rustfmt + override: true + + - name: rustfmt + uses: actions-rs/cargo@v1 + with: + command: fmt + args: --all -- --check