From 8a2b1f9820eccf6ce45fadf0d339e125ed684b98 Mon Sep 17 00:00:00 2001 From: Ryan Ernst Date: Fri, 19 Sep 2025 15:19:56 -0700 Subject: [PATCH] Allow overriding upstream ref 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()); + } } /**