From 98246592e1854a2064bda06c1f8e0dd11591301d 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 18ebfb6a314d7..d97c3747ce343 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 44a00281dabb3..a08ea3be9b27c 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 @@ -49,6 +49,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 fa3780a0c062a..251f514002da6 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()); + } } /**