on: pull_request: merge_group: env: RUSTFLAGS: -D warnings CARGO_TERM_COLOR: always concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} cancel-in-progress: true name: bench jobs: iai: runs-on: ubuntu-latest steps: - name: Checkout main sources uses: actions/checkout@v3 with: ref: main path: main - name: Checkout PR sources uses: actions/checkout@v3 with: clean: false path: pr - name: Install Valgrind run: | sudo apt install valgrind - name: Install toolchain uses: dtolnay/rust-toolchain@stable - uses: Swatinem/rust-cache@v2 with: workspaces: | main -> target pr -> target cache-on-failure: true - name: Generate test vectors run: | cargo run --bin reth --manifest-path main/Cargo.toml -- test-vectors tables cp -r testdata main mv testdata pr - name: Set main baseline run: cargo bench --package reth-db --bench iai --manifest-path main/Cargo.toml - name: Compare PR benchmark shell: 'script -q -e -c "bash {0}"' # required to workaround /dev/tty not being available run: | ./pr/.github/scripts/compare_iai.sh # Checks that benchmarks not run in CI compile bench-check: name: check runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Install toolchain uses: dtolnay/rust-toolchain@stable - uses: Swatinem/rust-cache@v2 - name: Check if benchmarks build run: cargo bench --all --all-features --all-targets --no-run bench-success: if: always() name: bench success needs: bench-check runs-on: ubuntu-latest steps: - name: Decide whether the needed jobs succeeded or failed uses: re-actors/alls-green@release/v1 with: jobs: ${{ toJSON(needs) }}