From cb955f11e8ded96f207185fcdb360d6012905d9a Mon Sep 17 00:00:00 2001 From: Ryan Ernst Date: Mon, 22 Sep 2025 07:54:39 -0700 Subject: [PATCH] Allow overriding upstream ref (#135113) For most devs the default of finding the elastic remote and the main branch of that remote is the right upstream ref. But for tests that operate on fake or local repositories it's useful to be able to override the ref. This commit adds a parameter to the transport version resources allowing to override the ref used to look at upstream. --- .../transport/AbstractTransportVersionFuncTest.groovy | 3 +++ .../transport/TransportVersionResourcesPlugin.java | 4 ++++ .../transport/TransportVersionResourcesService.java | 8 ++++++++ 3 files changed, 15 insertions(+) diff --git a/build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/internal/transport/AbstractTransportVersionFuncTest.groovy b/build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/internal/transport/AbstractTransportVersionFuncTest.groovy index 140c088597fac..a5d2aae172179 100644 --- a/build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/internal/transport/AbstractTransportVersionFuncTest.groovy +++ b/build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/internal/transport/AbstractTransportVersionFuncTest.groovy @@ -115,6 +115,9 @@ class AbstractTransportVersionFuncTest extends AbstractGradleFuncTest { include ':myserver' include ':myplugin' """ + propertiesFile << """ + org.elasticsearch.transports.upstreamRef=main + """ versionPropertiesFile.text = versionPropertiesFile.text.replace("9.1.0", "9.2.0") file("myserver/build.gradle") << """ diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/transport/TransportVersionResourcesPlugin.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/transport/TransportVersionResourcesPlugin.java index 433bba0c058ba..639147de2e08d 100644 --- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/transport/TransportVersionResourcesPlugin.java +++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/transport/TransportVersionResourcesPlugin.java @@ -48,6 +48,10 @@ public void apply(Project project) { Directory transportResources = project.getLayout().getProjectDirectory().dir("src/main/resources/" + resourceRoot); spec.getParameters().getTransportResourcesDirectory().set(transportResources); spec.getParameters().getRootDirectory().set(project.getLayout().getSettingsDirectory().getAsFile()); + Object upstreamRef = project.findProperty("org.elasticsearch.transport.upstreamRef"); + if (upstreamRef != null) { + spec.getParameters().getUpstreamRefOverride().set(upstreamRef.toString()); + } }); var depsHandler = project.getDependencies(); diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/transport/TransportVersionResourcesService.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/transport/TransportVersionResourcesService.java index 4c30a89f9627e..5a1abeda6da67 100644 --- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/transport/TransportVersionResourcesService.java +++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/transport/TransportVersionResourcesService.java @@ -12,8 +12,10 @@ import org.gradle.api.file.DirectoryProperty; import org.gradle.api.logging.Logger; import org.gradle.api.logging.Logging; +import org.gradle.api.provider.Property; import org.gradle.api.services.BuildService; import org.gradle.api.services.BuildServiceParameters; +import org.gradle.api.tasks.Optional; import org.gradle.process.ExecOperations; import org.gradle.process.ExecResult; @@ -59,6 +61,9 @@ public interface Parameters extends BuildServiceParameters { DirectoryProperty getTransportResourcesDirectory(); DirectoryProperty getRootDirectory(); + + @Optional + Property getUpstreamRefOverride(); } @Inject @@ -79,6 +84,9 @@ public interface Parameters extends BuildServiceParameters { public TransportVersionResourcesService(Parameters params) { this.transportResourcesDir = params.getTransportResourcesDirectory().get().getAsFile().toPath(); this.rootDir = params.getRootDirectory().get().getAsFile().toPath(); + if (params.getUpstreamRefOverride().isPresent()) { + upstreamRefName.set(params.getUpstreamRefOverride().get()); + } } /**