-
Notifications
You must be signed in to change notification settings - Fork 44
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ci: Add benchmark performance comparisons #232
Conversation
64967dd
to
6f50ebc
Compare
github.event_name == 'pull_request' && | ||
github.base_ref == 'develop' | ||
run: > | ||
make deps:bench && |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This make deps:bench
step will be removed once I modify the AMI image on AWS that is used to create the EC2 instance to contain this dependency from the get go.
It might be nice to have them run when the target is main too, gives a nice summary of the release cycle's impact on users. If it is not a quick thing to add this can added some other time perhaps EDIT: it looks like this would be a quick or check on two lines in the yaml, but I might be wrong - would suggest doing now |
* Implement benchmark comparisons using the last successfully uploaded benchmark report on the develop branch * See if GOPATH helps find the downloaded binary of benchstat * squeeze in one line to see if works now. * Add `-alpha 1.1` to benchstat to trick it to display the deltas
DESCRIPTION
This PR modifies the CI flow as follows:
action/no-benchmark
label is present, now if the PR is going into a branch that is NOTdevelop
branch (base reference !=develop
) then the benchmarks will not run.develop
) and the benchmarks are supposed to run, then CI will go fetch the latest artifact from the most recent build ondevelop
that passes thelint-then-benchmark.yml
workflow (ensures artifact was uploaded) and run the benchmark comparisons using benchstat.ISSUE
Closes #212
Rough Notes On Tools Explored:
benchstat
: is really simple and we can use built in github action cache to store the previous bench stats (rather than their way) and just run the comparisons and see the results through the CI run workflow (not fun to look at).github-action-benchmark
andgobenchdata
: both are very similar but the github action benchmark gives you ability to have the benchmarks publish to lets say thedocs
folder inside themaster
branch. However output of gobench seems much cleaner (one downside is that we can't really or rather should not run this on PR because it will modify a branch).gobencher
: I enabled this github app to generate PR results the tackle the problem of not being able to rungobenchdata
orgithub-action-benchmark
on PRs. This creates a very nice comparison on the PR check itself. One down side is that we can't control this with labels