Gradle Enterprise 2020.3

Gradle Enterprise 2020.3 features distributed testing performance improvements, more powerful build scan search capabilities, and more.

Read on for details of these and other new features.

Use version 1.6.7 of the Gradle Enterprise Maven extension, and version 3.4.1 of the Gradle Enterprise Gradle plugin for optimal usage of Gradle Enterprise.

Highlights

Test distribution file uploads are multiplexed and deduplicated

Builds leveraging Test Distribution will enjoy higher performance after upgrading to the latest Test Distribution Gradle plugin and agent.

Specifically, test input file transfers are parallelized by the build client and cached on the Gradle Enterprise server as well as on each Test Distribution agent. Thus, uploading input files from the build is avoided when the server-side or agent-side cache already has the test input file. This performance boost will be pronounced for local builds where network latency and bandwidth are typically more limited than in a CI environment. The net effect of this is more test agents being able to start running tests sooner, which speeds up builds.

This short video introduction shows how we could get the Apache Cassandra™️ build down from around 23 minutes to just over 1 minute using Test Distribution.

Learn more in the Gradle Enterprise Test Distribution Gradle Plugin User Manual and Gradle Enterprise Test Distribution Agent User Manual.

The minimum required Gradle Enterprise Test Distribution Gradle plugin version is 1.1. The minimum required Gradle Enterprise Test Distribution agent version is 1.1.

Build scan search terms support not: operator for exclusions

Build scan search terms for all text input query fields now allow NOT semantics through the use of a not: prefix. Previously, this operator was only available for the “Tags” query field.

This allows you to exclude builds from a specific set of projects, build hosts, users, and those that requested a specific task or goal. For example, specifying Requested tasks/goals = “not:clean” would find all builds where the “clean” task or goal wasn’t requested.

This operator can be combined with multiple search terms and partial matching for more powerful search filters.

Build scan query fields support multiple search terms

Build scan list and dashboards now allow to specify multiple search terms for each of “User”, “Hostname”, “Project”, “Requested tasks/goals”, and “Build tool version” query fields.

This allows you to analyze builds from multiple projects, build hosts, users, or a combination of these criteria.

Build scan query fields support partial matching on custom values and tags

Build scan search terms for all text input query fields now support partial matching by using “*” as a wildcard to match any number of characters. This was previously made available for all query fields except custom values and tags.

Custom values partial matching can be applied to the key and/or the value. The following are valid terms:

  • OS=*indows*
  • *ranch=3.*-release
  • not:Build Type=*Experimental

As with other query fields, partial matching can be combined with the not: operator for more powerful filtering.

Build scans can be queried by build tool version(s)

A new query field to find all build scans matching a specific build tool version has been added to the build scan search capabilities. For example, an input of “6.*” will match all builds that used any version “6” of the chosen build tool.

Multiple values, the not: operator, and partial matching via “*” are supported on this new query field.

Serial execution performance metrics account for gaps around task/goal executions

Calculation of performance dashboard metrics for serial execution time has been adjusted to take into account build time around and between task and goal executions.

View the help panels for each metric for a precise description of calculations.

Build scan Test page shows recent test history

The test details page for a FAILED or FLAKY test now shows how this particular test behaved in the last 7 days, which indicates the prevalence of such a failure.

Build scans support deep linking to a specific project or plugin

Individual projects and plugins can now be focused and linked to directly within build scans.

Build scans Switches section improvements

Build scan Switches now include whether the background build scan upload functionality was enabled, whether Gradle’s Configuration Cache was enabled, and whether Gradle’s file system watching was enabled.

Upgrade notes

If upgrading from a version of Gradle Enterprise prior to 2020.2, be sure to also consult the release notes for all interim versions.

Temporarily degraded performance due to data reindexing

Upon upgrading, a data reindexing process will be initiated in the background with Gradle Enterprise being usable for its duration. CPU usage will be increased and performance may be slightly degraded. For large installations storing many build scans, the reindexing process may take several hours. During this time, some builds may be omitted on the scan list and all dashboards. However, incoming and recent builds are prioritized for indexing; they will be available for analysis much sooner.

New persistent storage for Test Distribution file cache

This release introduces a file cache for the Test Distribution feature inside Gradle Enterprise. If you are using a Kubernetes based installation, a new persistent volume claim of 10 GB will be created during the upgrade. If you are using a Standard installation, we recommend increasing the storage capacity of the installation directory by 10 GB.

Required upgrade of Test Distribution agents and Gradle plugin

The 1.0.x versions of the Test Distribution Gradle plugin and agent are incompatible with Gradle Enterprise 2020.3. Please upgrade both to their latest 1.1.x versions after upgrading your Gradle Enterprise instance.

New Replicated admin console version

This release requires a new Replicated admin console version.  If you have an airgapped installation, please follow steps 4-6 in the installation section of the admin manual to install the new version.  For non airgapped installations, there are no extra steps to perform.

Changes

Sep 24, 2020
  • [FIX] Disk usage calculation is wrong for large volumes
  • [FIX] Sign in button is missing when anonymous scans are enabled
  • [FIX] Build tool version is not shown in all dashboards
Sep 14, 2020
  • [FEATURE] Task and goal filter criteria on scan list are automatically space-separated
  • [FIX] Maven dependencies are not displayed as expandable
  • [FIX] Percentile titles are overlapping in trends dashboard
  • [FIX] Task inputs comparison fails when displaying different variants of the same dependency
  • [FIX] Build cache node startup exceeds timeout on upgrade when file permissions have changed
Sep 02, 2020
  • [FIX] Dependency details cannot be displayed for some dependencies
  • [FIX] Use of tests dashboard may cause excessive memory usages when searching many tests
  • [FIX] Build scan page header is difficult to read when goals or project name is long
  • [FIX] Test distribution overall agent status summary is incorrectly updated when the status changes
  • [FIX] Left hand navigation on build scan page is sometimes incorrect when viewing test results
  • [FIX] Database connection termination by network infrastructure may cause resource exhaustion
Aug 13, 2020
  • [FEATURE] Total number of connected test distribution agents is displayed
  • [FEATURE] Database index checking can be triggered manually by an administrator
  • [FIX] Gradle timeline does not allow filtering by all supported non-cacheable reasons
  • [FIX] Error page is shown for Gradle scans with failures without error messages
  • [FIX] Error page is shown for Maven builds which execute the same project multiple times
  • [FIX] Error page is shown for multiple remote build cache errors
  • [FIX] User menu link to the build scan list is broken
  • [FIX] Gradle dependencies section shows incorrect count of selected dependencies when searching
  • [FIX] Last tooltip in timeline graph is sometimes cut off
  • [FIX] Gradle build scan task predecessors are wrongly described in hover text
  • [FIX] Performance of Gradle plugins page is sluggish for some large builds
  • [FIX] SAML-generated usernames are very large and unintuitive for some identity providers
  • [FIX] Log files can consume all available space when a lot of log data is generated quickly
  • [FIX] Uninformative error message is shown in airgap installations when unsupported Replicated version is installed
Jul 27, 2020
  • [FEATURE] Test distribution file transfer is optimized
  • [FEATURE] Build scan search terms support not: operator for exclusions
  • [FEATURE] Build scan query fields support multiple search terms
  • [FEATURE] Build scan query fields support partial matching on custom values and tags
  • [FEATURE] Build scans can be queried by build tool version(s)
  • [FEATURE] Search terms for custom values and tags can be edited inline
  • [FEATURE] Serial execution performance metrics account for gaps around task/goal executions
  • [FEATURE] Build scan Test page shows recent test history
  • [FEATURE] Build scans support deep linking to a specific project or plugin
  • [FEATURE] Build scan Switches section visualizes enablement of background build scan uploading
  • [FEATURE] Build scan Switches section visualizes enablement of configuration cache
  • [FEATURE] Build scan Switches section visualizes enablement of file system watching
  • [FIX] Test distribution requirements and capabilities display is ellided when values are too long
  • [FIX] Using back button on scan list does not update filters
  • [FIX] Maven project summary does not contain child count
  • [FIX] Maven project structure does not show the full tree when executed from a sub-module
  • [FIX] Console log view/download raw links are hidden when no lines are to be displayed
  • [FIX] Gradle tasks are hidden in the Timeline page when the map shows many threads
  • [FIX] Replicated is updated to 2.46.0
  • [FIX] Ship version for Kubernetes installations is updated to 0.54.0
  • [FIX] Database restore script for Kubernetes installations is made more resilient