From 3f8e7d4cbad2551f83dab0586684ace0e3107a63 Mon Sep 17 00:00:00 2001 From: Alexander Koval Date: Fri, 17 May 2024 00:20:12 +0300 Subject: [PATCH] Apply /etc/profile when running CLI tools before integration tests Some operating systems may have a shell without default PATH variable compiled in, so we should take into account system PATH Signed-off-by: Alexander Koval --- .../gradle/testclusters/OpenSearchNode.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/buildSrc/src/main/java/org/opensearch/gradle/testclusters/OpenSearchNode.java b/buildSrc/src/main/java/org/opensearch/gradle/testclusters/OpenSearchNode.java index 268de50340cbf..0ada37848f9b3 100644 --- a/buildSrc/src/main/java/org/opensearch/gradle/testclusters/OpenSearchNode.java +++ b/buildSrc/src/main/java/org/opensearch/gradle/testclusters/OpenSearchNode.java @@ -716,14 +716,24 @@ private void runOpenSearchBinScriptWithInput(String input, String tool, CharSequ LoggedExec.exec(project, spec -> { spec.setEnvironment(getOpenSearchEnvironment()); spec.workingDir(getDistroDir()); - spec.executable(OS.conditionalString().onUnix(() -> "./bin/" + tool).onWindows(() -> "cmd").supply()); + spec.executable( + OS.conditionalString() + .onUnix(() -> "/usr/bin/env") + .onWindows(() -> "cmd").supply() + ); spec.args(OS.>conditional().onWindows(() -> { ArrayList result = new ArrayList<>(); result.add("/c"); result.add("bin\\" + tool + ".bat"); result.addAll(Arrays.asList(args)); return result; - }).onUnix(() -> Arrays.asList(args)).supply()); + }).onUnix(() -> { + ArrayList result = new ArrayList<>(); + result.add("bash"); + result.add("-c"); + result.add("source /etc/profile; ./bin/" + tool + " " + String.join(" ", args)); + return result; + }).supply()); spec.setStandardInput(byteArrayInputStream); });