Benchmarking #7
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Benchmarking | |
on: | |
workflow_dispatch | |
jobs: | |
get_benchmark_data: | |
runs-on: ubuntu-latest | |
services: | |
clickhouse_splink_ci: | |
image: clickhouse/clickhouse-server:24.8 | |
env: | |
CLICKHOUSE_USER: splinkognito | |
CLICKHOUSE_PASSWORD: splink123! | |
ports: | |
- 8123:8123 | |
strategy: | |
fail-fast: true | |
matrix: | |
# add in other data choices once we know things are working okay | |
data_choice: ["fake_1000", "historical_50k"] | |
backend_to_use: ["duckdb", "clickhouse"] | |
name: Benchmark ${{ matrix.backend_to_use }} for data ${{ matrix.data_choice }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup uv | |
id: setup-uv | |
uses: astral-sh/setup-uv@v2 | |
with: | |
enable-cache: true | |
cache-dependency-glob: "uv.lock" | |
- name: Install Python 3.10 | |
run: uv python install 3.10 | |
- name: Install dependencies | |
run: uv sync -p 3.10 | |
- name: Run benchmarking script | |
run: uv run python benchmarking/benchmark.py ${{ matrix.data_choice }} ${{ matrix.backend_to_use }} | |
- name: Check directory content | |
run: ls -alhR benchmarking | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: bm_partial_${{ matrix.data_choice }}_${{ matrix.backend_to_use }} | |
path: benchmarking/output/run_data_${{ matrix.data_choice }}_${{ matrix.backend_to_use }}.json | |
if-no-files-found: error | |
combine_benchmark_data: | |
runs-on: ubuntu-latest | |
needs: get_benchmark_data | |
name: Combine data from benchmark runs | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup uv | |
id: setup-uv | |
uses: astral-sh/setup-uv@v2 | |
with: | |
enable-cache: true | |
cache-dependency-glob: "uv.lock" | |
- name: Install Python 3.10 | |
run: uv python install 3.10 | |
- name: Install dependencies | |
run: uv sync -p 3.10 | |
- name: Download all artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
path: './benchmarking/output' | |
pattern: 'bm_partial_*' | |
merge-multiple: true | |
- name: Check directory content | |
run: ls -alhR benchmarking | |
- name: Combine benchmark data | |
run: uv run python benchmarking/combine_data.py | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: bm_charts | |
path: benchmarking/output/*.html | |
if-no-files-found: error |