|
1 | 1 | name: Automated Cascade of Benchmarks
|
| 2 | +description: | |
| 3 | + This workflow runs a series of benchmarks in a cascade fashion. |
| 4 | + It can be triggered manually or via repository dispatch events. |
| 5 | + The benchmarks are defined in `benchmark_cascade/benchmark-configs.json`. |
2 | 6 |
|
3 | 7 | on:
|
4 | 8 | repository_dispatch:
|
5 | 9 | types: [run-benchmark, run-benchmark-cascade]
|
6 | 10 | workflow_dispatch:
|
7 | 11 | inputs:
|
8 | 12 | qdrant_version:
|
9 |
| - description: "Version of qdrant to benchmark (tags/v1.6.1, <commit-id>, my-branch, docker/v1.5.1, ghcr/dev)" |
| 13 | + description: "Version of qdrant to benchmark (docker/v1.5.1, ghcr/dev etc), used when benchmark_set=single" |
10 | 14 | default: ghcr/dev
|
11 | 15 | dataset:
|
12 |
| - description: "Dataset to benchmark" |
| 16 | + description: "Dataset to benchmark (used if benchmark_set=single)" |
13 | 17 | default: laion-small-clip
|
14 | 18 | engine_config:
|
15 |
| - description: "Engine config to benchmark" |
| 19 | + description: "Engine config to benchmark (used if benchmark_set=single)" |
16 | 20 | default: qdrant-continuous-benchmark
|
17 | 21 | feature_flags_all:
|
18 | 22 | type: boolean
|
19 |
| - description: "Enable all feature flags (false by default)" |
| 23 | + description: "Enable all feature flags (false by default, used if benchmark_set=single)" |
20 | 24 | default: false
|
21 | 25 | # Inputs to control cascade behavior
|
22 | 26 | benchmark_set:
|
23 |
| - description: "Benchmark set to run (from benchmark-configs.json)" |
24 |
| - default: "smoke_test" |
| 27 | + description: "Benchmark set to run (from benchmark_cascade/benchmark-configs.json)" |
| 28 | + default: "single" |
25 | 29 | current_index:
|
26 | 30 | description: "Current benchmark index in cascade (internal use)"
|
27 | 31 | default: "0"
|
28 | 32 |
|
| 33 | +# Restrict to only running this workflow one at a time. |
| 34 | +# Any new runs will be queued until the previous run is complete. |
| 35 | +# Any existing pending runs will be cancelled and replaced with current run. |
| 36 | +concurrency: |
| 37 | + group: continuous-benchmark |
| 38 | + |
29 | 39 | jobs:
|
30 | 40 | runBenchmark:
|
31 | 41 | name: benchmark - ${{ github.event.client_payload.qdrant_version || inputs.qdrant_version }} - ${{ github.event.client_payload.dataset || inputs.dataset }}
|
|
40 | 50 | - name: Set benchmark configuration
|
41 | 51 | id: config
|
42 | 52 | run: |
|
43 |
| - CONFIG_FILE="benchmark-configs.json" |
| 53 | + CONFIG_FILE="benchmark_cascade/benchmark-configs.json" |
44 | 54 |
|
45 | 55 | if [ "${{ github.event_name }}" = "repository_dispatch" ]; then
|
46 | 56 | # Repository dispatch - get values from payload
|
@@ -119,13 +129,13 @@ jobs:
|
119 | 129 | export POSTGRES_TABLE=benchmark_manual
|
120 | 130 | export QDRANT__FEATURE_FLAGS__ALL=${{ steps.config.outputs.feature_flags_all }}
|
121 | 131 | bash -x tools/setup_ci.sh
|
122 |
| - # bash -x tools/run_ci.sh |
| 132 | + bash -x tools/run_ci.sh |
123 | 133 |
|
124 | 134 | # Trigger next benchmark in cascade if there are more to run
|
125 | 135 | - name: Trigger next benchmark
|
126 | 136 | if: steps.config.outputs.benchmark_set != 'single'
|
127 | 137 | run: |
|
128 |
| - CONFIG_FILE="benchmark-configs.json" |
| 138 | + CONFIG_FILE="benchmark_cascade/benchmark-configs.json" |
129 | 139 | BENCHMARK_SET="${{ steps.config.outputs.benchmark_set }}"
|
130 | 140 | CURRENT_INDEX=${{ steps.config.outputs.current_index }}
|
131 | 141 | NEXT_INDEX=$((CURRENT_INDEX + 1))
|
|
0 commit comments