alteryx / evalml

EvalML is an AutoML library written in python.
https://evalml.alteryx.com
BSD 3-Clause "New" or "Revised" License
759 stars 85 forks source link

GitHub Action: Unit Test/ CI Timing Performance #2435

Open chukarsten opened 3 years ago

chukarsten commented 3 years ago

As a team lead/manager, I would like to establish an automated system to track increase/decrease of CI check completion time so that I can fail PRs that drastically increase CI runtime. As a dev/code reviewer, I would like an automated system of CI completion time so that I have a more reliable way other than eyeballing to determine the computational expense of introduced or modified tests.

I think one way this can be done is to establish a baseline for CI runtime according to each of the github actions, e.g. "Linux Unit Tests with Latest Dependencies" will have it's run time recorded at a certain value in a "ci_runtimes.json" file within the .github folder and a GH action created to record the run time of new PRs and compare it to that .json value. We should then fail the test if the increase in run time is greater than some threshold, like 1%.

That threshold should probably be determined first, for if there's too much noise in the GH actions CI check run time, the runner execution noise in the signal might override any benefit that we might get from imposing that rule. However, we might proceed anyways, acknowledging that the noise threshold is so large that it won't prevent minor test time creep but catch larger test time increases.

dsherry commented 3 years ago

This is related to #2396 and #2397