Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 25 additions & 2 deletions .buildkite/pipelines/periodic-java-ea.template.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,13 +30,12 @@ steps:
buildDirectory: /dev/shm/bk
- group: java-matrix
steps:
- label: "{{matrix.GRADLE_TASK}} / java-ea"
- label: "{{matrix.GRADLE_TASK}} / {{matrix.image}} "
command: .ci/scripts/run-gradle.sh -Druntime.java=$$JAVA_EA_VERSION -Dbwc.checkout.align=true $$GRADLE_TASK
timeout_in_minutes: 300
matrix:
setup:
image:
- windows-2025
- ubuntu-2404
GRADLE_TASK:
- checkPart1
Expand All @@ -53,6 +52,30 @@ steps:
buildDirectory: /dev/shm/bk
env:
GRADLE_TASK: "{{matrix.GRADLE_TASK}}"
- label: "{{matrix.GRADLE_TASK}} / {{matrix.image}} "
command: |
.\.buildkite\scripts\run-script.ps1 bash .buildkite/scripts/windows-run-gradle.sh
timeout_in_minutes: 300
matrix:
setup:
image:
- windows-2025
GRADLE_TASK:
- checkPart1
- checkPart2
- checkPart3
- checkPart4
- checkPart5
- checkPart6
- checkRestCompat
agents:
provider: gcp
image: family/elasticsearch-{{matrix.image}}
machineType: n1-standard-32
buildDirectory: /dev/shm/bk
env:
GRADLE_PARAMS: "-Druntime.java=$$JAVA_EA_VERSION"
GRADLE_TASK: "{{matrix.GRADLE_TASK}}"
- label: "{{matrix.BWC_VERSION}} / matrix-bwc"
command: .ci/scripts/run-gradle.sh -Druntime.java=$$JAVA_EA_VERSION -Dbwc.checkout.align=true v$$BWC_VERSION#bwcTest
timeout_in_minutes: 300
Expand Down
27 changes: 25 additions & 2 deletions .buildkite/pipelines/periodic-java-ea.yml
Original file line number Diff line number Diff line change
Expand Up @@ -468,13 +468,12 @@ steps:
buildDirectory: /dev/shm/bk
- group: java-matrix
steps:
- label: "{{matrix.GRADLE_TASK}} / java-ea"
- label: "{{matrix.GRADLE_TASK}} / {{matrix.image}} "
command: .ci/scripts/run-gradle.sh -Druntime.java=$$JAVA_EA_VERSION -Dbwc.checkout.align=true $$GRADLE_TASK
timeout_in_minutes: 300
matrix:
setup:
image:
- windows-2025
- ubuntu-2404
GRADLE_TASK:
- checkPart1
Expand All @@ -491,6 +490,30 @@ steps:
buildDirectory: /dev/shm/bk
env:
GRADLE_TASK: "{{matrix.GRADLE_TASK}}"
- label: "{{matrix.GRADLE_TASK}} / {{matrix.image}} "
command: |
.\.buildkite\scripts\run-script.ps1 bash .buildkite/scripts/windows-run-gradle.sh
timeout_in_minutes: 300
matrix:
setup:
image:
- windows-2025
GRADLE_TASK:
- checkPart1
- checkPart2
- checkPart3
- checkPart4
- checkPart5
- checkPart6
- checkRestCompat
agents:
provider: gcp
image: family/elasticsearch-{{matrix.image}}
machineType: n1-standard-32
buildDirectory: /dev/shm/bk
env:
GRADLE_PARAMS: "-Druntime.java=${JAVA_EA_VERSION}"
GRADLE_TASK: "{{matrix.GRADLE_TASK}}"
- label: "{{matrix.BWC_VERSION}} / matrix-bwc"
command: .ci/scripts/run-gradle.sh -Druntime.java=$$JAVA_EA_VERSION -Dbwc.checkout.align=true v$$BWC_VERSION#bwcTest
timeout_in_minutes: 300
Expand Down
2 changes: 1 addition & 1 deletion .buildkite/scripts/windows-run-gradle.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@

set -euo pipefail

.ci/scripts/run-gradle.sh -Dbwc.checkout.align=true $GRADLE_TASK
.ci/scripts/run-gradle.sh -Dbwc.checkout.align=true ${GRADLE_PARAMS:-} $GRADLE_TASK
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,6 @@ public GlobalBuildInfoPlugin(

@Override
public void apply(Project project) {

if (project != project.getRootProject()) {
throw new IllegalStateException(this.getClass().getName() + " can only be applied to the root project.");
}
Expand Down Expand Up @@ -350,10 +349,10 @@ private RuntimeJava findRuntimeJavaHome() {
}

private RuntimeJava runtimeJavaHome(Provider<File> fileProvider, boolean explicitlySet) {
return runtimeJavaHome(fileProvider, explicitlySet, null);
return runtimeJavaHome(fileProvider, explicitlySet, null, null);
}

private RuntimeJava runtimeJavaHome(Provider<File> fileProvider, boolean explicitlySet, String preReleasePostfix) {
private RuntimeJava runtimeJavaHome(Provider<File> fileProvider, boolean explicitlySet, String preReleasePostfix, Integer buildNumber) {
Provider<JavaVersion> javaVersion = fileProvider.map(
javaHome -> determineJavaVersion(
"runtime java.home",
Expand All @@ -367,19 +366,15 @@ private RuntimeJava runtimeJavaHome(Provider<File> fileProvider, boolean explici
Provider<String> vendorDetails = fileProvider.map(j -> metadataDetector.getMetadata(getJavaInstallation(j)))
.map(m -> formatJavaVendorDetails(m));

return new RuntimeJava(fileProvider, javaVersion, vendorDetails, explicitlySet, preReleasePostfix);
return new RuntimeJava(fileProvider, javaVersion, vendorDetails, explicitlySet, preReleasePostfix, buildNumber);
}

private RuntimeJava resolvePreReleaseRuntimeJavaHome(String runtimeJavaProperty) {
var major = JavaLanguageVersion.of(Integer.parseInt(runtimeJavaProperty.substring(0, runtimeJavaProperty.length() - 4)));
Integer buildNumber = Integer.getInteger("runtime.java.build");
var jdkbuild = buildNumber == null ? findLatestPreReleaseBuild(major) : findPreReleaseBuild(major, buildNumber);
String prVersionString = String.format("%d-%s+%d", major.asInt(), jdkbuild.type(), jdkbuild.buildNumber());
return resolveJavaHomeFromJdkDownloadPlugin(jdkbuild.type(), major, prVersionString);

}

private RuntimeJava resolveJavaHomeFromJdkDownloadPlugin(String preReleaseType, JavaLanguageVersion major, String prVersionString) {
String preReleaseType = jdkbuild.type();
String prVersionString = String.format("%d-%s+%d", major.asInt(), preReleaseType, jdkbuild.buildNumber());
NamedDomainObjectContainer<Jdk> container = (NamedDomainObjectContainer<Jdk>) project.getExtensions().getByName("jdks");
Jdk jdk = container.create(preReleaseType + "_" + major.asInt(), j -> {
j.setVersion(prVersionString);
Expand All @@ -391,7 +386,7 @@ private RuntimeJava resolveJavaHomeFromJdkDownloadPlugin(String preReleaseType,
// We on purpose resolve this here eagerly to ensure we resolve the jdk configuration in the context of the root project.
// If we keep this lazy we can not guarantee in which project context this is resolved which will fail the build.
File file = new File(jdk.getJavaHomePath().toString());
return runtimeJavaHome(providers.provider(() -> file), true, preReleaseType);
return runtimeJavaHome(providers.provider(() -> file), true, preReleaseType, jdkbuild.buildNumber());
}

private Provider<File> resolveJavaHomeFromToolChainService(String version) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,23 +21,26 @@ public class RuntimeJava {
private final boolean explicitlySet;
private final String preReleaseType;
private final Provider<String> vendorDetails;
private final Integer buildNumber;

RuntimeJava(Provider<File> javahome, Provider<JavaVersion> javaVersion, Provider<String> vendorDetails, boolean explicitlySet) {
this(javahome, javaVersion, vendorDetails, explicitlySet, null);
this(javahome, javaVersion, vendorDetails, explicitlySet, null, null);
}

RuntimeJava(
Provider<File> javahome,
Provider<JavaVersion> javaVersion,
Provider<String> vendorDetails,
boolean explicitlySet,
String preReleaseType
String preReleaseType,
Integer buildNumber
) {
this.javahome = javahome;
this.javaVersion = javaVersion;
this.vendorDetails = vendorDetails;
this.explicitlySet = explicitlySet;
this.preReleaseType = preReleaseType;
this.buildNumber = buildNumber;
}

public Provider<File> getJavahome() {
Expand All @@ -63,4 +66,8 @@ public boolean isExplicitlySet() {
public String getPreReleaseType() {
return preReleaseType;
}

public Integer getBuildNumber() {
return buildNumber;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,6 @@ static List<PreReleaseJdkBuild> findRecentPreReleaseBuild(JavaLanguageVersion la
ObjectMapper mapper = new ObjectMapper();
JsonNode node = mapper.readTree(is);
ObjectNode majors = (ObjectNode) node.get("majors");
System.out.println(majors.getClass());
ObjectNode perVersion = (ObjectNode) majors.get("" + languageVersion.asInt());
ArrayNode buildsNode = (ArrayNode) perVersion.get("builds");
List<JsonNode> buildsList = new ArrayList<>();
Expand Down
8 changes: 2 additions & 6 deletions distribution/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ import org.elasticsearch.gradle.transform.FilteringJarTransform
import java.nio.file.Files
import java.nio.file.Path

import static org.elasticsearch.gradle.internal.toolchain.EarlyAccessCatalogJdkToolchainResolver.findLatestPreReleaseBuildNumber
import static org.elasticsearch.gradle.internal.toolchain.EarlyAccessCatalogJdkToolchainResolver.findLatestPreReleaseBuild

plugins {
id 'base'
Expand Down Expand Up @@ -250,13 +250,9 @@ configure(subprojects.findAll { ['archives', 'packages'].contains(it.name) }) {
apply plugin: 'elasticsearch.repositories'

if (buildParams.runtimeJava.preRelease) {
Integer buildNumber = Integer.getInteger("runtime.java.build")
String preReleaseType = buildParams.runtimeJava.preReleaseType
def runtimeJavaMajorVersion = Integer.parseInt(buildParams.runtimeJavaVersion.get().getMajorVersion())
if (buildNumber == null) {
buildNumber = findLatestPreReleaseBuildNumber(runtimeJavaMajorVersion, preReleaseType);
}
String preReleaseVersionString = String.format("%d-%s+%d", runtimeJavaMajorVersion, preReleaseType, buildNumber);
String preReleaseVersionString = String.format("%d-%s+%d", runtimeJavaMajorVersion, preReleaseType, buildParams.runtimeJava.buildNumber)

project.jdks {
['darwin', 'windows', 'linux'].each { platform ->
Expand Down