Add workflow to compare engine sync performance #78
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The tool must work through an ever growing list of thousands of libraries and tens of thousands of library releases every
hour. For this reason, it's important to consider the performance impact of any changes.
The workflow will run the engine through a fixed subset of the registry, comparing the performance of the engine built
from the tip of that branch against that of the engine build from the base ref.
The engine has three trigger events, each with their own base ref:
Demo of the workflow run against the old engine version from 921d412
https://github.com/per1234/libraries-repository-engine/runs/3462859434?check_suite_focus=true#step:3:58
Notes:
The earliest commit compatible with the workflow is c36c3d2, which added the
go:build
task used to build the engine.In order to build engine versions from commits before 7dd8f69, a repository secret named
REPO_SCOPE_TOKEN
must be defined with a GitHub access token that has repo scope in order to install thegithub.com/arduino/arduino-modules/git
dependency the engine had at that time, which is hosted in a private repository.All versions from then on can be built by anyone without any secrets, so it is possible to use the workflow to evaluate
the immediate effect of pull requests from forks, which do not have secrets access.