@@ -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