Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add end-to-end testing workflow #282

Closed
wants to merge 23 commits into from
Closed
Show file tree
Hide file tree
Changes from 17 commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 38 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# Include any files or directories that you don't want to be copied to your
# container here (e.g., local build artifacts, temporary files, etc.).
#
# For more help, visit the .dockerignore file reference guide at
# https://docs.docker.com/go/build-context-dockerignore/

**/.DS_Store
**/.classpath
**/.dockerignore
**/.env
**/.git
**/.gitignore
**/.project
**/.settings
**/.toolstarget
**/.vs
**/.vscode
**/*.*proj.user
**/*.dbmdl
**/*.jfm
**/charts
**/docker-compose*
**/compose*
**/Dockerfile*
**/node_modules
**/npm-debug.log
**/secrets.dev.yaml
**/values.dev.yaml
./bin
./target
/bin
/target
LICENSE
README.md
accounts
genesis.dat
miden-store.*
store.*
25 changes: 25 additions & 0 deletions .github/workflows/doc.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Runs documentation related jobs.

name: doc

on:
push:
branches: [main, next]
pull_request:
types: [opened, reopened, synchronize]

jobs:
doc:
name: doc stable on ubuntu-latest
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
profile: minimal
override: true
- name: Install cargo make
run: cargo install cargo-make
- name: cargo make - doc
run: cargo make doc
55 changes: 18 additions & 37 deletions .github/workflows/ci.yml → .github/workflows/lint.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,25 @@
name: CI
# Runs linting related jobs.

name: lint

on:
push:
branches:
- main
branches: [main, next]
pull_request:
types: [opened, reopened, synchronize]

jobs:
version:
name: check rust version consistency
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
profile: minimal
override: true
- name: check rust versions
run: ./scripts/check-rust-version.sh

rustfmt:
name: rustfmt nightly on ubuntu-latest
runs-on: ubuntu-latest
Expand All @@ -21,8 +34,8 @@ jobs:
override: true
- name: Install cargo make
run: cargo install cargo-make
- name: cargo make - format
run: cargo make format
- name: cargo make - format-check
run: cargo make format-check

clippy:
name: clippy stable on ubuntu-latest
Expand All @@ -39,35 +52,3 @@ jobs:
run: cargo install cargo-make
- name: cargo make - clippy
run: cargo make clippy

doc:
name: doc stable on ubuntu-latest
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
profile: minimal
override: true
- name: Install cargo make
run: cargo install cargo-make
- name: cargo make - format
run: cargo make doc

test:
name: test stable on ubuntu-latest
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
profile: minimal
override: true
- name: Install cargo make
run: cargo install cargo-make
- name: cargo make - format
run: cargo make test

48 changes: 48 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# Runs testing related jobs.

name: test

on:
push:
branches: [main, next]
pull_request:
types: [opened, reopened, synchronize]

jobs:
unit-and-integration:
name: unit and integration tests stable on ubuntu-latest
phklive marked this conversation as resolved.
Show resolved Hide resolved
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
profile: minimal
override: true
- name: Install cargo make
run: cargo install cargo-make
- name: cargo make - test
run: cargo make test

end-to-end:
name: end-to-end tests stable on ubuntu-latest
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
profile: minimal
override: true
- name: Install cargo make
run: cargo install cargo-make
- name: cargo make - docker-build-node
run: cargo make docker-build-node
- name: cargo make - docker-run-node
run: cargo make docker-run-node
- name: cargo install - miden-client
run: cargo install miden-client --features concurrent,testing
- name: cargo make - test-end-to-end
run: cargo make test-end-to-end
Comment on lines +36 to +45
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Question: is the docker image built with concurrent,testing by default? Should we specify these features explicilty?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Indeed the docker image is built with the concurrent,testing features enabled by default.

Could you clarify by specify these features explicitly?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

On line 46 we explicitly build miden-client with concurrent,testing features. Could we do something similar on line 42?

The main motivation is to make sure that that changing the defaults for docker build does not break this task.

8 changes: 3 additions & 5 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,15 +1,12 @@
# Generated by Cargo

# will have compiled files and executables
debug/
target/

# Generated by protox `file_descriptor_set.bin`
*.bin

# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries
# More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html
# Cargo.lock

# These are backup files generated by rustfmt
**/*.rs.bk

Expand All @@ -20,10 +17,11 @@ target/
.vscode/

# Genesis files
/accounts
accounts/
genesis.dat

# Sqlite db files
*.sqlite3
*.sqlite3-shm
*.sqlite3-wal
db/
11 changes: 9 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@

We want to make contributing to this project as easy and transparent as possible, whether it's:

- Reporting a [bug](https://github.com/0xPolygonMiden/miden-node/issues/new)
- Reporting a [bug](https://github.com/0xPolygonMiden/miden-node/issues/new?assignees=&labels=bug&projects=&template=1-bugreport.yml&title=%5BBug%5D%3A+)
- Taking part in [discussions](https://github.com/0xPolygonMiden/miden-node/discussions)
- Submitting a [fix](https://github.com/0xPolygonMiden/miden-node/pulls)
- Proposing new [features](https://github.com/0xPolygonMiden/miden-node/issues/new)
- Proposing new [features](https://github.com/0xPolygonMiden/miden-node/issues/new?assignees=&labels=enhancement&projects=&template=2-feature-request.yml&title=%5BFeature%5D%3A+)

 

Expand Down Expand Up @@ -80,6 +80,13 @@ For example, a new change to the `miden-node-store` crate might have the followi

You can find more information about the `cargo make` commands in the [Makefile](Makefile.toml)

### Testing
After writing code different types of tests (unit, integration, end-to-end) are required to make sure that the correct behavior has been achieved and that no bugs have been introduced. You can run tests using the following command:

```
cargo make test
```

### Versioning
We use [semver](https://semver.org/) naming convention.

Expand Down
Loading
Loading