Skip to content

Commit 3f276e1

Browse files
authored
ci: improve the perf test further (#38)
1 parent 0ccb5bd commit 3f276e1

File tree

1 file changed

+25
-24
lines changed

1 file changed

+25
-24
lines changed

.github/workflows/performance_score_director.yml

Lines changed: 25 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -67,26 +67,12 @@ jobs:
6767
tar -xzf $FILENAME
6868
ls -l
6969
70-
# Fine-tuned for stability on GHA.
71-
- name: Phase 0 - (Baseline) Configure the benchmark
72-
working-directory: ./timefold-solver-benchmarks
73-
shell: bash
74-
run: |
75-
echo "forks=15" > scoredirector-benchmark.properties
76-
echo "warmup_iterations=5" >> scoredirector-benchmark.properties
77-
echo "measurement_iterations=5" >> scoredirector-benchmark.properties
78-
echo "relative_score_error_threshold=0.02" >> scoredirector-benchmark.properties
79-
echo "score_director_type=cs" >> scoredirector-benchmark.properties
80-
echo "example=${{ matrix.example }}" >> scoredirector-benchmark.properties
81-
cat scoredirector-benchmark.properties
82-
chmod +x run-scoredirector.sh
83-
8470
- name: Phase 1 - (Baseline) Compile the benchmark
8571
working-directory: ./timefold-solver-benchmarks
8672
shell: bash
8773
run: |
8874
mvn clean install -B -Dquickly -Dversion.ai.timefold.solver=${{ github.event.inputs.baseline }} -Dversion.tools.provider="${{ github.event.inputs.async_profiler_version }}"
89-
mv target/benchmarks.jar target/benchmarks-baseline.jar
75+
mv target/benchmarks.jar benchmarks-baseline.jar
9076
9177
- name: Phase 1 - (SUT) Checkout timefold-solver
9278
uses: actions/checkout@v4
@@ -129,45 +115,60 @@ jobs:
129115
shell: bash
130116
run: |
131117
mvn clean install -B -Dquickly -Dversion.tools.provider="${{ github.event.inputs.async_profiler_version }}"
132-
mv target/benchmarks.jar target/benchmarks-sut.jar
118+
mv target/benchmarks.jar benchmarks-sut.jar
119+
120+
# Fine-tuned for stability on GHA.
121+
- name: Phase 2 - Configure the benchmark
122+
working-directory: ./timefold-solver-benchmarks
123+
shell: bash
124+
run: |
125+
echo "forks=15" > scoredirector-benchmark.properties
126+
echo "warmup_iterations=5" >> scoredirector-benchmark.properties
127+
echo "measurement_iterations=5" >> scoredirector-benchmark.properties
128+
echo "relative_score_error_threshold=0.02" >> scoredirector-benchmark.properties
129+
echo "score_director_type=cs" >> scoredirector-benchmark.properties
130+
echo "example=${{ matrix.example }}" >> scoredirector-benchmark.properties
131+
cat scoredirector-benchmark.properties
132+
chmod +x run-scoredirector.sh
133133
134-
- name: Phase 2 - Benchmark the baseline
134+
- name: Phase 2 - (Baseline) Run the benchmark
135135
working-directory: ./timefold-solver-benchmarks
136136
id: benchmark_baseline
137137
env:
138138
RUN_ID: ${{ github.event.inputs.baseline }}
139139
shell: bash
140140
run: |
141-
cp target/benchmarks-baseline.jar target/benchmarks.jar
141+
cp benchmarks-baseline.jar target/benchmarks.jar
142142
./run-scoredirector.sh
143143
echo "RANGE_START=$(jq '.[0].primaryMetric.scoreConfidence[0]|round' results/scoredirector/${{ github.event.inputs.baseline }}/results.json)" >> "$GITHUB_OUTPUT"
144144
echo "RANGE_END=$(jq '.[0].primaryMetric.scoreConfidence[1]|round' results/scoredirector/${{ github.event.inputs.baseline }}/results.json)" >> "$GITHUB_OUTPUT"
145145
echo "RANGE_MID=$(jq '.[0].primaryMetric.score|round' results/scoredirector/${{ github.event.inputs.baseline }}/results.json)" >> "$GITHUB_OUTPUT"
146146
147-
- name: Phase 3 - Benchmark the SUT
147+
- name: Phase 2 - (SUT) Run the benchmark
148148
id: benchmark_new
149149
working-directory: ./timefold-solver-benchmarks
150150
env:
151151
RUN_ID: ${{ github.event.inputs.branch }}
152152
shell: bash
153153
run: |
154154
rm target/benchmarks.jar
155-
cp target/benchmarks-sut.jar target/benchmarks.jar
155+
cp benchmarks-sut.jar target/benchmarks.jar
156156
./run-scoredirector.sh
157157
echo "RANGE_START=$(jq '.[0].primaryMetric.scoreConfidence[0]|round' results/scoredirector/${{ github.event.inputs.branch }}/results.json)" >> "$GITHUB_OUTPUT"
158158
echo "RANGE_END=$(jq '.[0].primaryMetric.scoreConfidence[1]|round' results/scoredirector/${{ github.event.inputs.branch }}/results.json)" >> "$GITHUB_OUTPUT"
159159
echo "RANGE_MID=$(jq '.[0].primaryMetric.score|round' results/scoredirector/${{ github.event.inputs.branch }}/results.json)" >> "$GITHUB_OUTPUT"
160160
161-
- name: Phase 4 - Archive benchmark data
161+
- name: Phase 3 - Archive benchmark data
162162
uses: actions/upload-artifact@v4
163163
with:
164164
name: results-${{ matrix.example }}-${{ github.event.inputs.baseline }}_vs_${{ github.event.inputs.branch }}
165165
path: |
166-
./timefold-solver-benchmarks/target/benchmarks-baseline.jar
167-
./timefold-solver-benchmarks/target/benchmarks-sut.jar
166+
./timefold-solver-benchmarks/benchmarks-baseline.jar
167+
./timefold-solver-benchmarks/benchmarks-sut.jar
168+
./timefold-solver-benchmarks/scoredirector-benchmark.properties
168169
./timefold-solver-benchmarks/results/scoredirector
169170
170-
- name: Phase 4 - Report results
171+
- name: Phase 3 - Report results
171172
working-directory: ./timefold-solver-benchmarks
172173
env:
173174
OLD_RANGE_START: ${{ steps.benchmark_baseline.outputs.RANGE_START }}

0 commit comments

Comments
 (0)