Build commit distribution when necessary (#7616)
This fixes https://github.com/gradle/gradle-private/issues/1640 and partially fixes https://github.com/gradle/gradle-private/issues/1632 .
In https://github.com/gradle/gradle/pull/7337 we supported running performance tests against fork point commit, now we want to make `5.1-commit-1a2b3c4d` a valid baseline version - users can specify this version in `--baselines` parameter:
- If commit baseline is set explicitly (like `5.1-commit-1a2b3c4d`), then build the corresponding commit distribution.
- Otherwise, if the current branch is not `master` or `release`, calculate the fork point commit then build the corresponding commit distribution.
This PR also publishes build scan to TeamCity build log and reuses `RemoteProject` logic and get rid of duplicate `git clone` code.
20 Nov 18 6f64a771a4db42244f40d853d19af63fbcffd1b1
Run performance test against fork point commit (#7337)
This closes https://github.com/gradle/gradle-private/issues/1526
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.
24 Oct 18 5c327a8e5ee023ae75e2424922d615c0f22e48f4