|
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