-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
Conversation
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.
@mp911de you know this? seen this in other projects? |
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) |
ok, good if you take over this ticket. Is there any change involved for my local setup / development? |
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. |
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
Resolved. |
@sothawo This has no impact on local development. |
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:
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:
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.