cavalab / srbench

A living benchmark framework for symbolic regression
https://cavalab.org/srbench/
GNU General Public License v3.0
203 stars 74 forks source link

add local test script for competition submissions #91

Closed lacava closed 1 year ago

lacava commented 2 years ago

add a local script mirroring the CI process for users to test their submissions locally. Came up in https://github.com/cavalab/srbench/discussions/81

folivetti commented 2 years ago

doesn't your suggestion of bash script work?

lacava commented 2 years ago

yes but i'd like to include that and an installation procedure more formally if possible

alcides commented 2 years ago

I have tried to use Act. It runs, but fails in one of the methods. I will take a look at this the comings days.

alcides commented 2 years ago

The execution stops because of missing rsync command (which is installed in the machine, so it should be a misconfigured docker image). Full log: https://gist.github.com/alcides/271953941fff8fa3f4d915a857f63eb3

Is it possible for the output log to mention the tool that is being installed/prepared? Or is this output a global error in the script (that does not happen on GitHub)

lacava commented 2 years ago

the output log mentions it as a notice in the check job, line 14 https://gist.github.com/alcides/271953941fff8fa3f4d915a857f63eb3 in this case it's geneticengine.

lacava commented 2 years ago

the "get new folder name" step just looks for a difference in the submission folder commits between the a) PR and the base branch for PRs or b) the commit and the last commit for merges:

   echo "git diff:"
  folder=$(git diff --name-only 045001a5ef1cee65e64d4ada368ff317c4544005 c28ad6081e204ced9e3e768e0b0bafc30ba17551 | grep submission | sed 's|submission/\(.*\)/.*|\1|g' | head -n 1)
  folder_count=$(echo $folder | wc -w)
  if [ $folder_count -ne 1 ] ; then
    echo "::error ::found changes to $folder_count submissions instead of 1:\n$folder . PRs should only add/change a single submission."
  else
    echo "::notice ::testing $folder"
    echo "::set-output name=folder::$folder"
  fi