diff --git a/.github/workflows/rust-test.yaml b/.github/workflows/rust-test.yaml new file mode 100644 index 0000000..97ee281 --- /dev/null +++ b/.github/workflows/rust-test.yaml @@ -0,0 +1,80 @@ +name: Rust CI +on: [push] + +env: + CARGO_TERM_COLOR: always + +jobs: + cargo-tests: + runs-on: ubuntu-latest + timeout-minutes: 20 + steps: + - name: Checkout sources + uses: actions/checkout@v4 + - name: Install Rust nightly toolchain + uses: dtolnay/rust-toolchain@nightly + - uses: Swatinem/rust-cache@v2 + with: + cache-on-failure: true + - name: Install Foundry + uses: foundry-rs/foundry-toolchain@v1 + with: + version: nightly + - name: install just + uses: taiki-e/install-action@just + - name: generate testdata + run: | + just testdata + - name: fuzz test + run: cargo run --release -- -m 100 -t 4 --diff-count 25000 + cargo-lint: + runs-on: ubuntu-latest + timeout-minutes: 20 + steps: + - name: Checkout sources + uses: actions/checkout@v4 + - name: Install Rust nightly toolchain + uses: dtolnay/rust-toolchain@nightly + with: + components: rustfmt, clippy + - uses: Swatinem/rust-cache@v2 + with: + cache-on-failure: true + - name: cargo fmt + run: cargo fmt --all -- --check + - name: cargo clippy + run: cargo clippy --workspace --all --locked -- -D warnings + cargo-build: + runs-on: ubuntu-latest + timeout-minutes: 20 + continue-on-error: true + steps: + - name: Checkout sources + uses: actions/checkout@v4 + - name: Install Rust nightly toolchain + uses: dtolnay/rust-toolchain@nightly + - uses: Swatinem/rust-cache@v2 + with: + cache-on-failure: true + - name: build + id: build + run: cargo build --workspace --all --locked + cargo-doc: + runs-on: ubuntu-latest + timeout-minutes: 20 + continue-on-error: true + steps: + - name: Checkout sources + uses: actions/checkout@v4 + - name: Install Rust nightly toolchain + uses: dtolnay/rust-toolchain@nightly + - uses: Swatinem/rust-cache@v2 + with: + cache-on-failure: true + - name: doclint + id: build + continue-on-error: true + run: RUSTDOCFLAGS="-D warnings" cargo doc --all --no-deps --document-private-items + - name: doctest + run: cargo test --doc --all --locked + diff --git a/.github/workflows/sol-test.yml b/.github/workflows/sol-test.yml index 4e52dc2..e4fb193 100644 --- a/.github/workflows/sol-test.yml +++ b/.github/workflows/sol-test.yml @@ -1,6 +1,5 @@ name: sol-test - -on: workflow_dispatch +on: [push] env: FOUNDRY_PROFILE: ci @@ -16,23 +15,19 @@ jobs: - uses: actions/checkout@v4 with: submodules: recursive - - name: Install Foundry uses: foundry-rs/foundry-toolchain@v1 with: version: nightly - - name: Run Forge build run: | forge --version forge build --sizes id: build - - name: Check formatting run: | forge fmt --check id: fmt - - name: Run Forge tests run: | forge test -vvv