diff --git a/.github/workflows/bench.yml b/.github/workflows/bench.yml new file mode 100644 index 0000000000..a1a8020699 --- /dev/null +++ b/.github/workflows/bench.yml @@ -0,0 +1,43 @@ +name: Bench +on: + workflow_run: + workflows: ["CI"] + types: [completed] +env: + CARGO_TERM_COLOR: always + RUST_BACKTRACE: 1 + +jobs: + bench: + name: Benchmark + runs-on: self-hosted + if: ${{ github.event.workflow_run.conclusion == 'success' }} + steps: + - name: Install Rust + uses: dtolnay/rust-toolchain@master + with: + toolchain: stable + # components: rustfmt, clippy, llvm-tools-preview + + - name: Use sccache + uses: mozilla-actions/sccache-action@v0.0.4 + + - name: Enable sscache + run: | + echo "SCCACHE_GHA_ENABLED=true" >> "$GITHUB_ENV" + echo "RUSTC_WRAPPER=sccache" >> "$GITHUB_ENV" + + - name: Install dependencies (Linux) + env: + DEBIAN_FRONTEND: noninteractive + run: | + sudo apt-get install -y --no-install-recommends gyp mercurial ninja-build lld + echo "RUSTFLAGS=-C link-arg=-fuse-ld=lld" >> "$GITHUB_ENV" + + - name: Checkout + uses: actions/checkout@v4 + + - name: Build + run: | + cargo bench --features ci,bench + diff --git a/Cargo.toml b/Cargo.toml index eb6a0b7207..3da82dab90 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -21,3 +21,8 @@ license = "MIT OR Apache-2.0" # Don't increase beyond what Firefox is currently using: # https://firefox-source-docs.mozilla.org/writing-rust-code/update-policy.html#schedule rust-version = "1.74.0" + +[profile.bench] +# Inherits from the "release" profile, so just provide overrides here: +# https://doc.rust-lang.org/cargo/reference/profiles.html#release +debug = true