Skip to content

Commit 1094c53

Browse files
Benchmark EPoll and URing side-by-side in CI. (#168)
Add a selector matrix (EPoll / URing) to the benchmark workflow so both backends run in the same CI pass and can be compared directly. Also install `liburing-dev` so the URing backend is actually compiled, and bump checkout to actions/checkout@v4.
1 parent 925b8dd commit 1094c53

1 file changed

Lines changed: 21 additions & 10 deletions

File tree

.github/workflows/benchmark.yaml

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,36 +4,47 @@ on: [push, pull_request]
44

55
jobs:
66
test:
7+
name: ${{matrix.selector}} on ${{matrix.os}} (${{matrix.ruby}})
78
runs-on: ${{matrix.os}}-latest
8-
9+
910
strategy:
11+
fail-fast: false
1012
matrix:
1113
os:
1214
- ubuntu
13-
15+
1416
ruby:
1517
- head
16-
18+
19+
selector:
20+
- EPoll
21+
- URing
22+
1723
steps:
18-
- uses: actions/checkout@v2
24+
- uses: actions/checkout@v4
1925
- uses: ruby/setup-ruby@v1
2026
with:
2127
ruby-version: ${{matrix.ruby}}
2228
bundler-cache: true
23-
29+
30+
- name: Install packages (Ubuntu)
31+
if: matrix.os == 'ubuntu'
32+
run: sudo apt-get install -y liburing-dev
33+
2434
- name: Build extensions
2535
timeout-minutes: 5
2636
run: bundle exec bake build
27-
28-
- name: Install packages
37+
38+
- name: Install wrk
2939
timeout-minutes: 5
3040
run: |
3141
git clone https://github.com/ioquatix/wrk
3242
cd wrk
3343
make
34-
35-
- name: Run benchmarks
36-
timeout-minutes: 5
44+
45+
- name: Run benchmarks (${{matrix.selector}})
46+
timeout-minutes: 10
3747
env:
3848
WRK: ./wrk/wrk
49+
IO_EVENT_SELECTOR: ${{matrix.selector}}
3950
run: bundle exec bake -b benchmark/server/bake.rb

0 commit comments

Comments
 (0)