Skip to content

Performance Regression Test - Score Director #6

Performance Regression Test - Score Director

Performance Regression Test - Score Director #6

name: Performance - Score Director
on:
workflow_dispatch:
inputs:
jdk:
description: 'JDK version'
default: '23-tem'
required: true
baseline:
description: 'Timefold Solver release'
default: '1.14.0'
required: true
branch:
description: 'Development branch to test against'
default: 'main'
required: true
branch_owner:
description: 'User owning the branch'
default: 'TimefoldAI'
required: true
async_profiler_version:
description: 'async-profiler version'
default: '3.0'
required: true
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
example: [cloudbalancing, conferencescheduling, curriculumcourse, examination, machinereassignment, meetingscheduling, nurserostering, pas, taskassigning, travelingtournament, tsp, vehiclerouting]
steps:
- name: Setup SDKMAN
run: |
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk install java ${{ github.event.inputs.jdk }}
java -version
sdk install maven
mvn -version
- name: Checkout timefold-solver-benchmarks
uses: actions/checkout@v4
with:
repository: TimefoldAI/timefold-solver-benchmarks
path: ./timefold-solver-benchmarks
- name: Setup Async Profiler
working-directory: ./timefold-solver-benchmarks
run: |
export FILENAME=async-profiler-${{ github.event.inputs.async_profiler_version }}-linux-x64.tar.gz
wget https://github.com/async-profiler/async-profiler/releases/download/v${{ github.event.inputs.async_profiler_version }}/$FILENAME
tar -xzf $FILENAME
ls -l
- name: Compile the benchmarks
working-directory: ./timefold-solver-benchmarks
shell: bash
run: mvn clean install -Dai.timefold.solver.version=${{ github.event.inputs.baseline }} -Dversion.tools.provider="${{ github.event.inputs.async_profiler_version }}"