Skip to content

fix(ci): allow large async errors on rust 1.98 (#466) #219

fix(ci): allow large async errors on rust 1.98 (#466)

fix(ci): allow large async errors on rust 1.98 (#466) #219

Workflow file for this run

name: CI
on:
workflow_dispatch:
push:
branches: [master]
pull_request:
branches: [master, "**"]
types: [opened, synchronize, reopened]
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true
jobs:
fmt:
name: Rustfmt
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- run: rustup component add rustfmt
- name: Check formatting
run: cargo fmt --all -- --check
clippy:
name: Clippy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- run: rustup component add clippy
- name: Run clippy
run: cargo clippy --workspace --all-targets -- -D warnings
test:
name: Tests
runs-on: ubuntu-latest
needs: [fmt, clippy]
env:
# The workspace is built twice (default features, then all features
# including reth), linking every integration-test binary against the
# full dependency tree of debug artifacts. At full debuginfo that
# brushes the runner's free disk, and ld dies with SIGBUS when its
# memory-mapped output hits a full disk. Line tables keep file:line in
# test backtraces at a fraction of the size.
CARGO_PROFILE_DEV_DEBUG: line-tables-only
steps:
# Reclaim ~15-20GB of preinstalled toolchains this job never uses —
# headroom for the same disk cliff the debuginfo setting backs away from.
- name: Free disk space
run: sudo rm -rf /usr/share/dotnet /usr/local/lib/android /opt/hostedtoolcache/CodeQL
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
with:
cache-on-failure: true
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "22"
- name: Install OpenSSL dev libraries
run: |
sudo apt-get update -y
sudo apt-get install -y libssl-dev pkg-config
- name: Install cargo-nextest
run: cargo install -q cargo-nextest --locked
# nextest runs each test in its own process — required because docker-backed
# tests under core/tests/e2e_*.rs mutate process env (DATABASE_URL etc.).
- name: Run tests (default features)
run: cargo nextest run --exclude rindexer_rust_playground --workspace
- name: Run tests (all features including reth)
run: cargo nextest run --exclude rindexer_rust_playground --workspace --all-features
coverage:
name: Coverage
runs-on: ubuntu-latest
needs: [fmt, clippy]
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
with:
cache-on-failure: true
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "22"
- name: Install OpenSSL dev libraries
run: |
sudo apt-get update -y
sudo apt-get install -y libssl-dev pkg-config
- name: Install cargo-llvm-cov and cargo-nextest
run: cargo install -q cargo-llvm-cov cargo-nextest --locked
- name: Run coverage
run: cargo llvm-cov nextest -p rindexer -p rindexer_cli --all-features --lcov --output-path lcov.info
- name: Upload to Codecov
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: lcov.info
fail_ci_if_error: true