diff --git a/.github/workflows/bench.yml b/.github/workflows/bench.yml new file mode 100644 index 0000000000000..540f8d7e8884d --- /dev/null +++ b/.github/workflows/bench.yml @@ -0,0 +1,32 @@ +on: + push: + branches: master + +jobs: + benchmark_base_branch: + name: Bencher + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: bencherdev/bencher@main + - name: Install dependencies + run: | + sudo apt-get update + sudo apt-get install hyperfine clang-15 ccache build-essential libtool autotools-dev automake pkg-config bsdmainutils python3-zmq libevent-dev libboost-dev libsqlite3-dev libdb++-dev systemtap-sdt-dev libminiupnpc-dev libnatpmp-dev libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools qtwayland5 libqrencode-dev -y + - name: Setup ccache + uses: hendrikmuhs/ccache-action@v1.2 + with: + create-symlink: true + - name: Build bitcoind + run: | + ./autogen.sh && CC=clang-15 CXX=clang++-15 ./configure --disable-tests --disable-wallet --without-gui --disable-bench --disable-fuzz-binary && make clean && make -j $(nproc) -C src bitcoind + - name: Track base branch benchmarks with Bencher + run: | + bencher run \ + --project core-test \ + --token '${{ secrets.BENCHER_API_TOKEN }}' \ + --branch master \ + --testbed ubuntu-latest \ + --adapter shell_hyperfine \ + --err \ + "hyperfine --runs 2 --export-json results.json './src/bitcoind --stopatheight=5000'"