Fix incompatibility with 8.8 and our internal api usages
- Update ospackage to a version that contains a fix we provided
- Tweak build logic to avoid deprecation warnings
- Use newer permission api
- Use custom shadowplugin
- Rework ElasticsearchDistribution dependencies resolution
- Update Gradle wrapper to 8.8
This commit alters our backward compatibility testing logic to restrict
testing to the latest patch release for any given minor version. Since
our policy is not to do any kind of breaking changes in patches, most of
this testing is superfluous. This change reduces the number of versions
we need to test by over 70%.
We want to keep pull request and intake build time as short as possible.
While testing this I noticed though that all those checkPartX runs are basically building core modules e.g. like :server by themself not leveraging the gradle cache ideally as all 4 checkPart jobs running in parallel likely run :server:compileJava in parallel. Not sure this is a big deal. I remember within the gradle team we had similar issues and addressed this by
quick dedicated "populating build cache" pipeline steps. Not something we need to look into now, but at one point investigating this approach might be valuable for certain scenarios.
* Make gradle build finished logic CC compatible
* Make ElasticsearchBuildFinishedPlugin configuration cache aware
* Add gradle enterprise plugin to buildlibs version catalogue
As part of creating our ci images we prefill gradle caches to reduce build times. As part of that we now
also cache the java toolchain we resolve using the gradle toolchain provider
Using gradle toolchain support in gradle requires refactoring how the composite build is composed.
We added three toolchain resolver
1. Resolver for resolving defined bundled version from oracle as openjdk
2. Resolve all available jdks from Adoption
3. Resolve archived Oracle jdk distributions.
We should be able to remove the JdkDownloadPlugin altogether without having that in place, but we'll do that in a separate effort.
Fixes#95094
- Remove custom checksum build logic in wrapper task
- Adjust jdk home handling adjusting the change in behaviour in gradle. Requires providing canonical paths for provisioned jdk homes.
- Fix test by add workaround to bug in configuration cache
This updates the gradle wrapper to 7.6.1. This patch release contains a
fix for incremental compilation of java modules we have raised against
gradle 7.6
see https://github.com/gradle/gradle/issues/23067
* Fix TestResultProcessor api changes
* Fix inputs for generateProviderManifest
* Ignore tests for now until gradle has fixed reporting issue
* Fix dependency substitution in example plugins build
* Use right java bin path on windows
* Add hint to task onlyif when no docker is available
This commit introduces a `./gradlew run-ccs` task with the following goals:
* mirror the ease of use of `./gradlew run` for manual cross cluster search development
* same credentials
* same well known ports
* uses ccs specific naming
* enable debugging across both clusters
This is admittedly kinda hacky. Test clusters have support multi-cluster and are in use for
for automated testing. There are some nuances that make that setup (and this setup)
a bit cumbersome..specifically needing to read one cluster's config to configure another cluster.
The run task adds a bit more config (well defined ports, etc.) than the tests need to
so that also complicates this abit more. I found that without the additions here I was unable to get both
sharing of cluster configuration (like in the [tests](https://github.com/elastic/elasticsearch/blob/main/qa/ccs-common-rest/build.gradle#L55))
and the run task's hard coded config to work well together. Hopefully the additions to the run task are not
too hacky as I could not find any other way.