BuildForkPointDistribution.kt

Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
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.

  1. … 7 more files in changeset.
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.

    • -0
    • +104
    ./BuildForkPointDistribution.kt
  1. … 12 more files in changeset.