Use bundled JDK by default when testing in CI

This commit is contained in:
Mark Vieira 2023-03-02 12:06:45 -08:00
parent 66aeaf5810
commit 7c2135c6bc
10 changed files with 22 additions and 24 deletions

View file

@ -5,4 +5,3 @@
# are 'java' or 'openjdk' followed by the major release number. # are 'java' or 'openjdk' followed by the major release number.
ES_BUILD_JAVA=jdk17 ES_BUILD_JAVA=jdk17
ES_RUNTIME_JAVA=jdk17

View file

@ -5,4 +5,3 @@
# are 'java' or 'openjdk' followed by the major release number. # are 'java' or 'openjdk' followed by the major release number.
ES_BUILD_JAVA=openjdk17 ES_BUILD_JAVA=openjdk17
ES_RUNTIME_JAVA=openjdk17

View file

@ -5,4 +5,3 @@
# are 'java' or 'openjdk' followed by the major release number. # are 'java' or 'openjdk' followed by the major release number.
ES_BUILD_JAVA=openjdk17 ES_BUILD_JAVA=openjdk17
ES_RUNTIME_JAVA=openjdk17

View file

@ -1,5 +1,5 @@
# This file is used as part of a matrix build in Jenkins where the # This file is used as part of a matrix build in Jenkins where the
# values below are included as an axis of the matrix. # values below are included as an axis of the matrix.
ES_RUNTIME_JAVA: RUNTIME_JAVA_HOME:
- openjdk17 - openjdk17

View file

@ -5,7 +5,7 @@
# which Elasticsearch will be tested. Valid Java versions are 'java' # which Elasticsearch will be tested. Valid Java versions are 'java'
# or 'openjdk' followed by the major release number. # or 'openjdk' followed by the major release number.
ES_RUNTIME_JAVA: RUNTIME_JAVA_HOME:
- graalvm-ce17 - graalvm-ce17
- openjdk17 - openjdk17
- openjdk18 - openjdk18

View file

@ -9,7 +9,6 @@ If (-NOT ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdent
$AppProps = ConvertFrom-StringData (Get-Content .ci/java-versions.properties -raw) $AppProps = ConvertFrom-StringData (Get-Content .ci/java-versions.properties -raw)
$env:ES_BUILD_JAVA=$AppProps.ES_BUILD_JAVA $env:ES_BUILD_JAVA=$AppProps.ES_BUILD_JAVA
$env:ES_RUNTIME_JAVA=$AppProps.ES_RUNTIME_JAVA
$env:JAVA_TOOL_OPTIONS='' $env:JAVA_TOOL_OPTIONS=''
$ErrorActionPreference="Stop" $ErrorActionPreference="Stop"
@ -23,7 +22,6 @@ Copy-Item .ci/init.gradle -Destination $gradleInit
[Environment]::SetEnvironmentVariable("JAVA_HOME", $null, "Machine") [Environment]::SetEnvironmentVariable("JAVA_HOME", $null, "Machine")
$env:PATH="C:\Users\jenkins\.java\$env:ES_BUILD_JAVA\bin\;$env:PATH" $env:PATH="C:\Users\jenkins\.java\$env:ES_BUILD_JAVA\bin\;$env:PATH"
$env:JAVA_HOME=$null $env:JAVA_HOME=$null
$env:SYSTEM_JAVA_HOME="C:\Users\jenkins\.java\$env:ES_RUNTIME_JAVA"
Remove-Item -Recurse -Force \tmp -ErrorAction Ignore Remove-Item -Recurse -Force \tmp -ErrorAction Ignore
New-Item -ItemType directory -Path \tmp New-Item -ItemType directory -Path \tmp

View file

@ -23,7 +23,6 @@ sudo useradd vagrant
set -e set -e
. .ci/java-versions.properties . .ci/java-versions.properties
RUNTIME_JAVA_HOME=$HOME/.java/$ES_RUNTIME_JAVA
BUILD_JAVA_HOME=$HOME/.java/$ES_BUILD_JAVA BUILD_JAVA_HOME=$HOME/.java/$ES_BUILD_JAVA
rm -Rfv $HOME/.gradle/init.d/ && mkdir -p $HOME/.gradle/init.d rm -Rfv $HOME/.gradle/init.d/ && mkdir -p $HOME/.gradle/init.d
@ -57,7 +56,6 @@ fi
sudo bash -c 'cat > /etc/sudoers.d/elasticsearch_vars' << SUDOERS_VARS sudo bash -c 'cat > /etc/sudoers.d/elasticsearch_vars' << SUDOERS_VARS
Defaults env_keep += "ES_JAVA_HOME" Defaults env_keep += "ES_JAVA_HOME"
Defaults env_keep += "JAVA_HOME" Defaults env_keep += "JAVA_HOME"
Defaults env_keep += "SYSTEM_JAVA_HOME"
SUDOERS_VARS SUDOERS_VARS
sudo chmod 0440 /etc/sudoers.d/elasticsearch_vars sudo chmod 0440 /etc/sudoers.d/elasticsearch_vars
@ -74,9 +72,7 @@ git config --global --add safe.directory $WORKSPACE
# be explicit about Gradle home dir so we use the same even with sudo # be explicit about Gradle home dir so we use the same even with sudo
sudo -E env \ sudo -E env \
PATH=$BUILD_JAVA_HOME/bin:`sudo bash -c 'echo -n $PATH'` \ PATH=$BUILD_JAVA_HOME/bin:`sudo bash -c 'echo -n $PATH'` \
RUNTIME_JAVA_HOME=`readlink -f -n $RUNTIME_JAVA_HOME` \
--unset=ES_JAVA_HOME \ --unset=ES_JAVA_HOME \
--unset=JAVA_HOME \ --unset=JAVA_HOME \
SYSTEM_JAVA_HOME=`readlink -f -n $RUNTIME_JAVA_HOME` \
./gradlew -g $HOME/.gradle --scan --parallel --continue $@ ./gradlew -g $HOME/.gradle --scan --parallel --continue $@

View file

@ -10,6 +10,8 @@ import org.elasticsearch.gradle.Architecture
import org.elasticsearch.gradle.OS import org.elasticsearch.gradle.OS
import org.elasticsearch.gradle.VersionProperties import org.elasticsearch.gradle.VersionProperties
import org.elasticsearch.gradle.internal.info.BuildParams import org.elasticsearch.gradle.internal.info.BuildParams
import org.elasticsearch.gradle.internal.precommit.ThirdPartyAuditPrecommitPlugin
import org.elasticsearch.gradle.internal.precommit.ThirdPartyAuditTask
import org.elasticsearch.gradle.internal.test.rest.RestTestBasePlugin import org.elasticsearch.gradle.internal.test.rest.RestTestBasePlugin
import org.elasticsearch.gradle.testclusters.StandaloneRestIntegTestTask import org.elasticsearch.gradle.testclusters.StandaloneRestIntegTestTask
@ -54,4 +56,12 @@ configure(allprojects) {
} }
} }
} }
project.plugins.withType(ThirdPartyAuditPrecommitPlugin) {
project.getTasks().withType(ThirdPartyAuditTask.class).configureEach {
if (BuildParams.getIsRuntimeJavaHomeSet() == false) {
javaHome.set(providers.provider(() -> "${project.jdks.provisioned_runtime.javaHomePath}"))
}
}
}
} }

View file

@ -17,6 +17,7 @@ import org.gradle.api.Task;
import org.gradle.api.artifacts.Configuration; import org.gradle.api.artifacts.Configuration;
import org.gradle.api.tasks.TaskProvider; import org.gradle.api.tasks.TaskProvider;
import java.io.File;
import java.nio.file.Path; import java.nio.file.Path;
public class ThirdPartyAuditPrecommitPlugin extends PrecommitPlugin { public class ThirdPartyAuditPrecommitPlugin extends PrecommitPlugin {
@ -61,7 +62,7 @@ public class ThirdPartyAuditPrecommitPlugin extends PrecommitPlugin {
})); }));
t.dependsOn(resourcesTask); t.dependsOn(resourcesTask);
if (BuildParams.getIsRuntimeJavaHomeSet()) { if (BuildParams.getIsRuntimeJavaHomeSet()) {
t.setJavaHome(BuildParams.getRuntimeJavaHome().getPath()); t.getJavaHome().set(project.provider(BuildParams::getRuntimeJavaHome).map(File::getPath));
} }
t.getTargetCompatibility().set(project.provider(BuildParams::getRuntimeJavaVersion)); t.getTargetCompatibility().set(project.provider(BuildParams::getRuntimeJavaVersion));
t.setSignatureFile(resourcesDir.resolve("forbidden/third-party-audit.txt").toFile()); t.setSignatureFile(resourcesDir.resolve("forbidden/third-party-audit.txt").toFile());

View file

@ -79,7 +79,7 @@ public abstract class ThirdPartyAuditTask extends DefaultTask {
private File signatureFile; private File signatureFile;
private String javaHome; private Property<String> javaHome;
private final Property<JavaVersion> targetCompatibility; private final Property<JavaVersion> targetCompatibility;
@ -106,6 +106,7 @@ public abstract class ThirdPartyAuditTask extends DefaultTask {
this.fileSystemOperations = fileSystemOperations; this.fileSystemOperations = fileSystemOperations;
this.projectLayout = projectLayout; this.projectLayout = projectLayout;
this.targetCompatibility = objectFactory.property(JavaVersion.class); this.targetCompatibility = objectFactory.property(JavaVersion.class);
this.javaHome = objectFactory.property(String.class);
} }
@Input @Input
@ -127,16 +128,11 @@ public abstract class ThirdPartyAuditTask extends DefaultTask {
this.signatureFile = signatureFile; this.signatureFile = signatureFile;
} }
@Input @Internal
@Optional public Property<String> getJavaHome() {
public String getJavaHome() {
return javaHome; return javaHome;
} }
public void setJavaHome(String javaHome) {
this.javaHome = javaHome;
}
@Internal @Internal
public File getJarExpandDir() { public File getJarExpandDir() {
return projectLayout.getBuildDirectory().dir("precommit/thirdPartyAudit").get().dir(getName()).getAsFile(); return projectLayout.getBuildDirectory().dir("precommit/thirdPartyAudit").get().dir(getName()).getAsFile();
@ -335,8 +331,8 @@ public abstract class ThirdPartyAuditTask extends DefaultTask {
private String runForbiddenAPIsCli() throws IOException { private String runForbiddenAPIsCli() throws IOException {
ByteArrayOutputStream errorOut = new ByteArrayOutputStream(); ByteArrayOutputStream errorOut = new ByteArrayOutputStream();
ExecResult result = execOperations.javaexec(spec -> { ExecResult result = execOperations.javaexec(spec -> {
if (javaHome != null) { if (javaHome.isPresent()) {
spec.setExecutable(javaHome + "/bin/java"); spec.setExecutable(javaHome.get() + "/bin/java");
} }
spec.classpath(getForbiddenAPIsClasspath(), classpath); spec.classpath(getForbiddenAPIsClasspath(), classpath);
spec.jvmArgs("-Xmx1g"); spec.jvmArgs("-Xmx1g");
@ -368,8 +364,8 @@ public abstract class ThirdPartyAuditTask extends DefaultTask {
spec.getMainClass().set(JDK_JAR_HELL_MAIN_CLASS); spec.getMainClass().set(JDK_JAR_HELL_MAIN_CLASS);
spec.args(getJarExpandDir()); spec.args(getJarExpandDir());
spec.setIgnoreExitValue(true); spec.setIgnoreExitValue(true);
if (javaHome != null) { if (javaHome.isPresent()) {
spec.setExecutable(javaHome + "/bin/java"); spec.setExecutable(javaHome.get() + "/bin/java");
} }
spec.setStandardOutput(standardOut); spec.setStandardOutput(standardOut);
}); });