Skip to content

chore: merge upstream v1.1.1 #794

chore: merge upstream v1.1.1

chore: merge upstream v1.1.1 #794

Workflow file for this run

name: lint
on:
pull_request:
merge_group:
push:
branches: [main]
env:
CARGO_TERM_COLOR: always
TOOL_CHAIN: "1.82"
TOOL_CHAIN_NIGHTLY: "nightly-2024-11-07"
jobs:
clippy-binaries:
name: clippy binaries / ${{ matrix.binary }}
runs-on: ubuntu-latest
timeout-minutes: 30
strategy:
matrix:
include:
- binary: reth
network: ethereum
extra-features: ""
- binary: op-reth
network: optimism
extra-features: "opbnb"
- binary: bsc-reth
network: bsc
extra-features: ""
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@clippy
with:
toolchain: ${{ env.TOOL_CHAIN }}
components: clippy
- uses: Swatinem/rust-cache@v2
with:
cache-on-failure: true
- run: cargo clippy --bin "${{ matrix.binary }}" --workspace --features "${{ matrix.network }} ${{ matrix.extra-features }} asm-keccak jemalloc jemalloc-prof min-error-logs min-warn-logs min-info-logs min-debug-logs min-trace-logs"
env:
RUSTFLAGS: -D warnings
# clippy:
# name: clippy
# runs-on: ubuntu-latest
# timeout-minutes: 30
# steps:
# - uses: actions/checkout@v4
# - uses: dtolnay/rust-toolchain@nightly
# with:
# toolchain: ${{ env.TOOL_CHAIN_NIGHTLY }}
# components: clippy
# - uses: Swatinem/rust-cache@v2
# with:
# cache-on-failure: true
# - run: cargo clippy --workspace --lib --examples --tests --benches --all-features --locked
# env:
# RUSTFLAGS: -D warnings
# wasm:
# runs-on: ubuntu-latest
# timeout-minutes: 30
# steps:
# - uses: actions/checkout@v4
# - uses: dtolnay/rust-toolchain@stable
# with:
# target: wasm32-wasip1
# - uses: taiki-e/install-action@cargo-hack
# - uses: Swatinem/rust-cache@v2
# with:
# cache-on-failure: true
# - uses: dcarbone/install-jq-action@v2
# - name: Run Wasm checks
# run: .github/assets/check_wasm.sh
crate-checks:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
toolchain: ${{ env.TOOL_CHAIN }}
- uses: taiki-e/install-action@cargo-hack
- uses: Swatinem/rust-cache@v2
with:
cache-on-failure: true
- run: cargo hack check --workspace --exclude op-reth --exclude bsc-reth
- run: cargo check -p op-reth --features "optimism opbnb"
- run: cargo check -p bsc-reth --features "bsc"
msrv:
name: MSRV / ${{ matrix.network }}
runs-on: ubuntu-latest
timeout-minutes: 30
strategy:
matrix:
include:
- binary: reth
network: ethereum
extra-features: ""
- binary: op-reth
network: optimism
extra-features: "opbnb"
- binary: bsc-reth
network: bsc
extra-features: ""
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ env.TOOL_CHAIN }}
- uses: Swatinem/rust-cache@v2
with:
cache-on-failure: true
- run: cargo build --bin "${{ matrix.binary }}" --workspace --features "${{ matrix.network }} ${{ matrix.extra-features }}"
env:
RUSTFLAGS: -D warnings
fmt:
name: fmt
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@nightly
with:
components: rustfmt
toolchain: ${{ env.TOOL_CHAIN_NIGHTLY }} # fmt need the nightly flag, please update this if really needed
- name: Run fmt
run: cargo fmt --all --check
- name: Run fmt on book sources
run: cargo fmt --manifest-path book/sources/Cargo.toml --all --check
# udeps:
# name: udeps
# runs-on: ubuntu-latest
# timeout-minutes: 30
# steps:
# - uses: actions/checkout@v4
# - uses: dtolnay/rust-toolchain@nightly
# - uses: Swatinem/rust-cache@v2
# with:
# cache-on-failure: true
# - uses: taiki-e/install-action@cargo-udeps
# - run: cargo udeps --workspace --lib --examples --tests --benches --all-features --locked
# book:
# name: book
# runs-on: ubuntu-latest
# timeout-minutes: 30
# steps:
# - uses: actions/checkout@v4
# - uses: dtolnay/rust-toolchain@nightly
# - uses: dtolnay/rust-toolchain@master
# with:
# toolchain: ${{ env.TOOL_CHAIN }} # MSRV
# - uses: Swatinem/rust-cache@v2
# with:
# cache-on-failure: true
# - run: cargo build --bin reth --workspace --features ethereum
# env:
# RUSTFLAGS: -D warnings
# - run: ./book/cli/update.sh target/debug/reth
# - name: Check book changes
# run: git diff --exit-code
codespell:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
- uses: codespell-project/actions-codespell@v2
with:
skip: "*.json"
grafana:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
- name: Check dashboard JSON with jq
uses: sergeysova/jq-action@v2
with:
cmd: jq empty etc/grafana/dashboards/overview.json
no-test-deps:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- name: Ensure no arbitrary or proptest dependency on default build
run: cargo tree --package reth -e=features,no-dev | grep -Eq "arbitrary|proptest" && exit 1 || exit 0
# Checks that selected rates can compile with power set of features
features:
name: features
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@clippy
- uses: Swatinem/rust-cache@v2
with:
cache-on-failure: true
- name: cargo install cargo-hack
uses: taiki-e/install-action@cargo-hack
- run: make check-features
env:
RUSTFLAGS: -D warnings
# Check crates correctly propagate features
feature-propagation:
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- uses: actions/checkout@v4
- name: fetch deps
run: |
# Eagerly pull dependencies
time cargo metadata --format-version=1 --locked > /dev/null
- name: run zepter
run: |
cargo install zepter -f --locked
zepter --version
time zepter run check
lint-success:
name: lint success
runs-on: ubuntu-latest
if: always()
needs:
- clippy-binaries
- crate-checks
- fmt
# - udeps
# - book
- codespell
- grafana
- no-test-deps
- features
- feature-propagation
timeout-minutes: 30
steps:
- name: Decide whether the needed jobs succeeded or failed
uses: re-actors/alls-green@release/v1
with:
jobs: ${{ toJSON(needs) }}