2222 with :
2323 labels : benchmark
2424
25- bench-criterion :
26- needs : label_trigger
27- strategy :
28- matrix :
29- benchmark :
30- - id : compress
31- name : Vortex Compression
32- runs-on : [ self-hosted, gcp ]
33- if : ${{ contains(github.event.head_commit.message, '[benchmark]') || github.event.label.name == 'benchmark' && github.event_name == 'pull_request' }}
34- steps :
35- - uses : actions/checkout@v4
36- - uses : ./.github/actions/cleanup
37- - uses : ./.github/actions/setup-rust
38-
39- # The compression benchmarks rely on DuckDB being installed to convert CSV to Parquet
40- - name : Install DuckDB
41- 42- if : runner.environment != 'self-hosted'
43- with :
44- version : v1.0.0
45-
46- - name : Set tempdir
47- if : runner.environment == 'self-hosted'
48- run : |
49- echo "TMPDIR=/work" >> $GITHUB_ENV
50-
51- - name : Run benchmark
52- shell : bash
53- env :
54- BENCH_VORTEX_RATIOS : ' .*'
55- RUSTFLAGS : ' -C target-cpu=native'
56- run : |
57- cargo install cargo-criterion
58- sudo apt-get update && sudo apt-get install -y jq
59-
60- cargo criterion \
61- --bench ${{ matrix.benchmark.id }} \
62- --features mimalloc \
63- --message-format=json \
64- > ${{ matrix.benchmark.id }}-raw.json
65-
66- cat ${{ matrix.benchmark.id }}-raw.json \
67- | bash scripts/coerce-criterion-json.sh \
68- > ${{ matrix.benchmark.id }}.json
69-
70- - name : Setup AWS CLI
71- uses : aws-actions/configure-aws-credentials@v4
72- with :
73- role-to-assume : arn:aws:iam::375504701696:role/GitHubBenchmarkRole
74- aws-region : us-east-1
75- - name : Install uv
76- uses : astral-sh/setup-uv@v5
77- - name : Compare results
78- shell : bash
79- run : |
80- set -Eeu -o pipefail -x
81-
82- base_commit_sha=${{ github.event.pull_request.base.sha }}
83-
84- aws s3 cp s3://vortex-benchmark-results-database/data.json - \
85- | grep $base_commit_sha \
86- > base.json
87-
88- echo '# Benchmarks: ${{ matrix.benchmark.id }}' > comment.md
89- echo '<details>' >> comment.md
90- echo '<summary>Table of Results</summary>' >> comment.md
91- echo '' >> comment.md
92- uv run scripts/compare-benchmark-jsons.py base.json ${{ matrix.benchmark.id }}.json \
93- >> comment.md
94- echo '</details>' >> comment.md
95- - name : Comment PR
96- uses : thollander/actions-comment-pull-request@v3
97- with :
98- file-path : comment.md
99- comment-tag : bench-pr-comment-${{ matrix.benchmark.id }}
10025 bench :
10126 needs : label_trigger
10227 runs-on : [ self-hosted, gcp ]
10530 benchmark :
10631 - id : random_access
10732 name : Random Access
33+ - id : compress
34+ name : Compression
10835 if : ${{ contains(github.event.head_commit.message, '[benchmark]') || github.event.label.name == 'benchmark' && github.event_name == 'pull_request' }}
10936 steps :
11037 - uses : actions/checkout@v4
@@ -125,10 +52,9 @@ jobs:
12552 - name : Run ${{ matrix.benchmark.name }} benchmark
12653 shell : bash
12754 env :
128- BENCH_VORTEX_RATIOS : ' .*'
12955 RUSTFLAGS : ' -C target-cpu=native'
13056 run : |
131- cargo run --bin ${{ matrix.benchmark.id }} --release -- -d gh-json -t 1 | tee ${{ matrix.benchmark.id }}.json
57+ cargo run --bin ${{ matrix.benchmark.id }} --release -- -d gh-json | tee ${{ matrix.benchmark.id }}.json
13258
13359 - name : Setup AWS CLI
13460 uses : aws-actions/configure-aws-credentials@v4
0 commit comments