From ee982d657f501f3da9baea552f54ae4b51c40c13 Mon Sep 17 00:00:00 2001 From: Ryan Ernst Date: Wed, 17 Sep 2025 11:39:34 -0700 Subject: [PATCH] Fix transport version tests on windows (#134739) Running on windows has some slightly different behavior when interacting with the filesystem. In particular, this commit fixes the changed resources prefix when looking at changed resources in git to always use forward slashes as git outputs them. It also fixes the case that CI uses a non-main (eg master) branch as the default branch. Finally it fixes git diff so it outputs paths relative to the transport resources dir, as ls-files does. --- .../transport/AbstractTransportVersionFuncTest.groovy | 6 +++++- .../transport/TransportVersionResourcesService.java | 5 +++-- 2 files changed, 8 insertions(+), 3 deletions(-) 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 0cba54ae713b5..140c088597fac 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 @@ -155,7 +155,11 @@ class AbstractTransportVersionFuncTest extends AbstractGradleFuncTest { """ setupLocalGitRepo() - execute("git checkout -b main") + String currentBranch = execute("git branch --show-current") + if (currentBranch.strip().equals("main") == false) { + // make sure a main branch exists, some CI doesn't have main set as the default branch + execute("git checkout -b main") + } execute("git checkout -b test") } 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 c115a2a7b1712..4c30a89f9627e 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 @@ -122,7 +122,8 @@ TransportVersionDefinition getReferableDefinitionFromUpstream(String name) { /** Get the definition names which have local changes relative to upstream */ List getChangedReferableDefinitionNames() { List changedDefinitions = new ArrayList<>(); - String referablePrefix = REFERABLE_DIR.toString(); + // make sure the prefix is git style paths, always forward slashes + String referablePrefix = REFERABLE_DIR.toString().replace('\\', '/'); for (String changedPath : getChangedResources()) { if (changedPath.contains(referablePrefix) == false) { continue; @@ -304,7 +305,7 @@ private Set getChangedResources() { synchronized (changedResources) { HashSet resources = new HashSet<>(); - String diffOutput = gitCommand("diff", "--name-only", getUpstreamRefName(), "."); + String diffOutput = gitCommand("diff", "--name-only", "--relative", getUpstreamRefName(), "."); if (diffOutput.strip().isEmpty() == false) { Collections.addAll(resources, diffOutput.split("\n")); // git always outputs LF }