Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Connect build to ge.spring.io to benefit from deep build insights and faster builds #2718

Closed
wants to merge 2 commits into from

Conversation

erichaagdev
Copy link
Contributor

This pull request connects the build to the Gradle Enterprise instance at https://ge.spring.io/. This allows the Spring Data Elasticsearch project to benefit from deep build insights provided by build scans and faster build speeds for all contributors as a result of local and remote build caching.

This Gradle Enterprise instance has all features and extensions enabled and is freely available for use by Spring Data Elasticsearch and all other Spring projects. On this Gradle Enterprise instance, Spring Data Elasticsearch will have access not only to all of the published build scans, but other aggregate data features such as:

  • Dashboards to view all historical build scans, along with performance trends over time
  • Build failure analytics for enhanced investigation and diagnosis of build failures
  • Test failure analytics to better understand trends and causes around slow, failing, and flaky tests

Spring Boot, Spring Framework, and Spring Security are already connected to https://ge.spring.io/ and are benefiting from these features.

With these changes, in the best case scenario where nothing has changed between two build invocations, I saw local build times go from 3m 2s to 7.6s.

Appropriate access must be configured to publish build scans. To provision a Gradle Enterprise access key for local development, you can invoke the following Maven goal:

./mvnw gradle-enterprise:provision-access-key

For instructions to connect CI to the remote build cache and to publish build scans, please follow the instructions here in Gradle Enterprise Conventions. You can disregard that this is a Gradle plugin, the instructions in the README work the same.

Please let me know if there are any questions about the value of Gradle Enterprise or the changes in this pull request and I’d be happy to address them.

This change publishes a build scan to ge.spring.io for every local build from an authenticated Spring committer and for CI where appropriate access tokens are available. The build will not fail if publishing fails.

This change also allows the build to benefit from local and remote build caching, providing faster builds for all contributors.

Additionally, the project will have access to all features of Gradle Enterprise such as:

- Dashboards to view all historical build scans, along with performance trends over time
- Build failure analytics for enhanced investigation and diagnosis of build failures
- Test failure analytics to better understand trends and causes around slow, failing, and flaky tests
This is done to speed up builds by avoiding recompilation of all sources when making non-ABI changes. This also optimizes the Gradle Enterprise build caching infrastructure.
@sothawo
Copy link
Collaborator

sothawo commented Oct 5, 2023

@mp911de you know this? seen this in other projects?

@mp911de
Copy link
Member

mp911de commented Oct 9, 2023

This is a broader initiative where we slowly roll out Gradle Enterprise (build step caching, insights) to our CI (see also spring-projects/spring-data-jpa#3142)

@sothawo
Copy link
Collaborator

sothawo commented Oct 9, 2023

ok, good if you take over this ticket. Is there any change involved for my local setup / development?

@erichaagdev
Copy link
Contributor Author

Hey @sothawo! The only change I recommend to your local setup is to create a Gradle Enterprise access key once these changes are merged:

./mvnw gradle-enterprise:provision-access-key

Then you will have access to build scans for your local builds providing build & performance insights, test results, dependency insights, and more, in an easily shareable format. Even if you do not provision an access key to publish build scans, you will still benefit from faster local builds as a result of local build caching.

gregturn pushed a commit that referenced this pull request Oct 20, 2023
This change publishes a build scan to ge.spring.io for every local build from an authenticated Spring committer and for CI where appropriate access tokens are available. The build will not fail if publishing fails.

This change also allows the build to benefit from local and remote build caching, providing faster builds for all contributors.

Additionally, the project will have access to all features of Gradle Enterprise such as:

- Dashboards to view all historical build scans, along with performance trends over time
- Build failure analytics for enhanced investigation and diagnosis of build failures
- Test failure analytics to better understand trends and causes around slow, failing, and flaky tests

See #2718
@gregturn gregturn added type: task A general task and removed status: waiting-for-triage An issue we've not yet triaged labels Oct 20, 2023
@gregturn gregturn added this to the 5.2 GA (2023.1.0) milestone Oct 20, 2023
@gregturn
Copy link
Contributor

Resolved.

@gregturn gregturn closed this Oct 20, 2023
@gregturn
Copy link
Contributor

@sothawo This has no impact on local development.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: task A general task
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants