Basically, the idea is, we should run feature branch performance tests against the distribution which is built from the "fork point commit". This can reduce the effects of performance regression which is not introduced by the feature branch.
Two tasks are added into the build and depended by performance task:
- `determineForkPoint`, run `git` command to determine the fork point commit. It's done during the execution phase, then it sets the commit for `buildForkPointDistribution` task. - `buildForkPointDistribution`, try to build a distribution from the fork point commit.
`buildForkPointDistribution` is cachable so it only needs to run once. Its input is the fork point commit, the output is two files: a binary distribution and a tooling api jar. The generated binary distribution is used to run individual worker tests.