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 #3al-gkr-basic-workflow
@ -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. |
@ -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 |