Skip to content

Commit 8f08eb1

Browse files
authored
ci: sync Benchmarks workflow on master (max_connections + full_size input) (#9)
1 parent 4a13c1d commit 8f08eb1

1 file changed

Lines changed: 31 additions & 0 deletions

File tree

.github/workflows/benchmark.yml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,11 @@ name: Benchmarks
55
# (informational-first), and upload the results + generated docs as artifacts.
66
on:
77
workflow_dispatch:
8+
inputs:
9+
full_size:
10+
description: 'Run full-size sweeps (slower; the representative capture, NOT the like-for-like gate baseline)'
11+
type: boolean
12+
default: false
813
schedule:
914
- cron: '0 6 * * 1' # Mondays 06:00 UTC
1015

@@ -76,6 +81,32 @@ jobs:
7681
done
7782
echo "Postgres did not become ready in time"; docker logs bench-postgres; exit 1
7883
84+
# Default run is CI-sized (fast, stable, like-for-like with the committed
85+
# ci-ubuntu baseline). A `full_size=true` dispatch overrides each BENCH_*
86+
# knob with the production-ish sweep (budget to 2000 tenants, catalog to
87+
# 5000 schemas, full churn). Explicit BENCH_* vars win over the CI defaults
88+
# in src/harness/config.ts, so BENCH_CI stays 1 either way.
89+
- name: Configure bench sizes
90+
run: |
91+
if [ "${{ github.event.inputs.full_size }}" = "true" ]; then
92+
echo "Running FULL-SIZE sweeps (representative capture)"
93+
{
94+
echo "BENCH_DB_TENANTS=50"
95+
echo "BENCH_DB_ROWS=1000"
96+
echo "BENCH_CHURN_CAPS=25,50,100"
97+
echo "BENCH_CHURN_CONCURRENCY=16"
98+
echo "BENCH_CHURN_OPS=2000"
99+
echo "BENCH_BUDGET_COUNTS=100,500,2000"
100+
echo "BENCH_CATALOG_COUNTS=100,1000,5000"
101+
echo "BENCH_HTTP_TENANTS=50"
102+
echo "BENCH_HTTP_ROWS=200"
103+
echo "BENCH_HTTP_CONNECTIONS=25"
104+
echo "BENCH_HTTP_DURATION=10"
105+
} >> "$GITHUB_ENV"
106+
else
107+
echo "Running CI-size sweeps (gate default)"
108+
fi
109+
79110
- name: Setup Node.js
80111
uses: actions/setup-node@v4
81112
with:

0 commit comments

Comments
 (0)