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
2 files changed,
75 insertions(+),
0 deletions(-)
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