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 CI #5

Closed
wants to merge 2 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
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
53 changes: 53 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
name: CI

on:
pull_request:
push:
branches:
- main

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

env:
CARGO_TERM_COLOR: always
# Make sure CI fails on all warnings, including Clippy lints
RUSTFLAGS: "-Dwarnings"

jobs:
lint:
# Name the Job
name: Lint Code Base
# Set the agent to run on
runs-on: ubuntu-latest

steps:
- name: Checkout Code
uses: actions/checkout@v3
with:
# Full git history is needed to get a proper
# list of changed files within `super-linter`
fetch-depth: 0

- name: Lint Code Base
uses: super-linter/super-linter@v5
env:
VALIDATE_ALL_CODEBASE: true
VALIDATE_RUST_2021: true
VALIDATE_RUST_CLIPPY: true
DEFAULT_BRANCH: master
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

test:
name: Rust tests
strategy:
matrix:
environment: [ubuntu-latest, macos-latest, windows-latest]

runs-on: ${{ matrix.environment }}

steps:
- uses: actions/checkout@v3
- run: rustup update
- run: cargo test
11 changes: 8 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
`roundme` is a human-assisted rounding analyzer. It helps its operator determine whether an arithmetic operation should round up or down.

## Features

- Recommends whether an arithmetic operation needs to round up or down
- Generates LaTeX-based reports in PDF

Expand All @@ -12,16 +13,16 @@

- `A + B => rounding(A), rounding(B)` (addition does not change the rounding direction)
- `A - B => rounding(A), ! rounding(B)` (the rounding direction of the substracted element is inverse of the expected rounding)
- `A * B => rounding(A), rounding(B), rounding(*) ` (multiplication does not change the rounding direction)
- `A * B => rounding(A), rounding(B), rounding(*)` (multiplication does not change the rounding direction)
- `A / B => rounding(A), ! rounding(B), rounding(/)` (the rounding direction of the denominator is the inverse of the expected rounding)
- `A ** B`
- `If A>=1 => rounding(A), rounding(B)`
- `If A<1 => rounding(A), ! rounding(B)` (if A is below 1, the rounding direction of the exponent is the inverse of the expected rounding)

## How to use

- Run `roundme init` to generate a default configuration file.
- Run `roundme config` to generate user configuration file.
- Run `roundme init` to generate a default configuration file.
- Run `roundme config` to generate user configuration file.
- Run `roundme analyze` to analyze the configuration file
- Run `roundme pdf` to generate a PDF (require `latexmk`)

Expand All @@ -31,12 +32,14 @@ Running `roundme pdf` on the default configuration will generate the following:
### Configuration

`roundme` relies on a configuration file:

```yaml
formula: a * b / c
round_up: true
less_than_one: ["a * b"] # optional
greater_than_one: ["c"] # optional
```

- `formula` contains the formula to be analyze
- `round_up` determines if the result of the formula should round up or down
- `less_than_one` is used for the `**` [rules](#rules) *(raw string comparison and sensible to space)*
Expand All @@ -47,11 +50,13 @@ See the [balancer V2](./examples/balancer/README.md) example.
## Install

Install with

```bash
cargo install roundme
```

To install the latest GitHub version

```bash
git clone git@github.com:crytic/roundme.git
cd roundme
Expand Down