mirror of
https://github.com/elastic/elasticsearch.git
synced 2025-04-24 23:27:25 -04:00
Merge revision ce2a7dee86
into multi-project
This commit is contained in:
commit
affd6dfb5b
357 changed files with 9574 additions and 2238 deletions
|
@ -56,7 +56,7 @@ steps:
|
|||
timeout_in_minutes: 300
|
||||
matrix:
|
||||
setup:
|
||||
BWC_VERSION: ["8.16.2", "8.17.0", "8.18.0", "9.0.0"]
|
||||
BWC_VERSION: ["8.16.2", "8.17.1", "8.18.0", "9.0.0"]
|
||||
agents:
|
||||
provider: gcp
|
||||
image: family/elasticsearch-ubuntu-2004
|
||||
|
|
|
@ -10,6 +10,7 @@ steps:
|
|||
- debian-12
|
||||
- opensuse-leap-15
|
||||
- oraclelinux-8
|
||||
- oraclelinux-9
|
||||
- sles-15
|
||||
- ubuntu-2004
|
||||
- ubuntu-2204
|
||||
|
|
|
@ -11,6 +11,7 @@ steps:
|
|||
- debian-12
|
||||
- opensuse-leap-15
|
||||
- oraclelinux-8
|
||||
- oraclelinux-9
|
||||
- sles-15
|
||||
- ubuntu-2004
|
||||
- ubuntu-2204
|
||||
|
@ -301,8 +302,8 @@ steps:
|
|||
env:
|
||||
BWC_VERSION: 8.16.2
|
||||
|
||||
- label: "{{matrix.image}} / 8.17.0 / packaging-tests-upgrade"
|
||||
command: ./.ci/scripts/packaging-test.sh -Dbwc.checkout.align=true destructiveDistroUpgradeTest.v8.17.0
|
||||
- label: "{{matrix.image}} / 8.17.1 / packaging-tests-upgrade"
|
||||
command: ./.ci/scripts/packaging-test.sh -Dbwc.checkout.align=true destructiveDistroUpgradeTest.v8.17.1
|
||||
timeout_in_minutes: 300
|
||||
matrix:
|
||||
setup:
|
||||
|
@ -315,7 +316,7 @@ steps:
|
|||
machineType: custom-16-32768
|
||||
buildDirectory: /dev/shm/bk
|
||||
env:
|
||||
BWC_VERSION: 8.17.0
|
||||
BWC_VERSION: 8.17.1
|
||||
|
||||
- label: "{{matrix.image}} / 8.18.0 / packaging-tests-upgrade"
|
||||
command: ./.ci/scripts/packaging-test.sh -Dbwc.checkout.align=true destructiveDistroUpgradeTest.v8.18.0
|
||||
|
|
|
@ -10,6 +10,7 @@ steps:
|
|||
- debian-12
|
||||
- opensuse-leap-15
|
||||
- oraclelinux-8
|
||||
- oraclelinux-9
|
||||
- sles-15
|
||||
- ubuntu-2004
|
||||
- ubuntu-2204
|
||||
|
|
|
@ -325,8 +325,8 @@ steps:
|
|||
- signal_reason: agent_stop
|
||||
limit: 3
|
||||
|
||||
- label: 8.17.0 / bwc
|
||||
command: .ci/scripts/run-gradle.sh -Dbwc.checkout.align=true v8.17.0#bwcTest
|
||||
- label: 8.17.1 / bwc
|
||||
command: .ci/scripts/run-gradle.sh -Dbwc.checkout.align=true v8.17.1#bwcTest
|
||||
timeout_in_minutes: 300
|
||||
agents:
|
||||
provider: gcp
|
||||
|
@ -335,7 +335,7 @@ steps:
|
|||
buildDirectory: /dev/shm/bk
|
||||
preemptible: true
|
||||
env:
|
||||
BWC_VERSION: 8.17.0
|
||||
BWC_VERSION: 8.17.1
|
||||
retry:
|
||||
automatic:
|
||||
- exit_status: "-1"
|
||||
|
@ -448,7 +448,7 @@ steps:
|
|||
setup:
|
||||
ES_RUNTIME_JAVA:
|
||||
- openjdk21
|
||||
BWC_VERSION: ["8.16.2", "8.17.0", "8.18.0", "9.0.0"]
|
||||
BWC_VERSION: ["8.16.2", "8.17.1", "8.18.0", "9.0.0"]
|
||||
agents:
|
||||
provider: gcp
|
||||
image: family/elasticsearch-ubuntu-2004
|
||||
|
@ -490,7 +490,7 @@ steps:
|
|||
ES_RUNTIME_JAVA:
|
||||
- openjdk21
|
||||
- openjdk23
|
||||
BWC_VERSION: ["8.16.2", "8.17.0", "8.18.0", "9.0.0"]
|
||||
BWC_VERSION: ["8.16.2", "8.17.1", "8.18.0", "9.0.0"]
|
||||
agents:
|
||||
provider: gcp
|
||||
image: family/elasticsearch-ubuntu-2004
|
||||
|
|
|
@ -13,6 +13,7 @@ steps:
|
|||
- debian-12
|
||||
- opensuse-leap-15
|
||||
- oraclelinux-8
|
||||
- oraclelinux-9
|
||||
- sles-15
|
||||
- ubuntu-2004
|
||||
- ubuntu-2204
|
||||
|
|
11
.buildkite/pipelines/pull-request/part-1-entitlements.yml
Normal file
11
.buildkite/pipelines/pull-request/part-1-entitlements.yml
Normal file
|
@ -0,0 +1,11 @@
|
|||
config:
|
||||
allow-labels: "test-entitlements"
|
||||
steps:
|
||||
- label: part-1-entitlements
|
||||
command: .ci/scripts/run-gradle.sh -Dignore.tests.seed -Dtests.jvm.argline="-Des.entitlements.enabled=true" checkPart1
|
||||
timeout_in_minutes: 300
|
||||
agents:
|
||||
provider: gcp
|
||||
image: family/elasticsearch-ubuntu-2004
|
||||
machineType: custom-32-98304
|
||||
buildDirectory: /dev/shm/bk
|
|
@ -1,6 +1,8 @@
|
|||
steps:
|
||||
- label: part-1
|
||||
command: .ci/scripts/run-gradle.sh -Dignore.tests.seed checkPart1
|
||||
command: |
|
||||
.buildkite/scripts/spotless.sh # This doesn't have to be part of part-1, it was just a convenient place to put it
|
||||
.ci/scripts/run-gradle.sh -Dignore.tests.seed checkPart1
|
||||
timeout_in_minutes: 300
|
||||
agents:
|
||||
provider: gcp
|
||||
|
|
11
.buildkite/pipelines/pull-request/part-2-entitlements.yml
Normal file
11
.buildkite/pipelines/pull-request/part-2-entitlements.yml
Normal file
|
@ -0,0 +1,11 @@
|
|||
config:
|
||||
allow-labels: "test-entitlements"
|
||||
steps:
|
||||
- label: part-2-entitlements
|
||||
command: .ci/scripts/run-gradle.sh -Dignore.tests.seed -Dtests.jvm.argline="-Des.entitlements.enabled=true" checkPart2
|
||||
timeout_in_minutes: 300
|
||||
agents:
|
||||
provider: gcp
|
||||
image: family/elasticsearch-ubuntu-2004
|
||||
machineType: custom-32-98304
|
||||
buildDirectory: /dev/shm/bk
|
11
.buildkite/pipelines/pull-request/part-3-entitlements.yml
Normal file
11
.buildkite/pipelines/pull-request/part-3-entitlements.yml
Normal file
|
@ -0,0 +1,11 @@
|
|||
config:
|
||||
allow-labels: "test-entitlements"
|
||||
steps:
|
||||
- label: part-3-entitlements
|
||||
command: .ci/scripts/run-gradle.sh -Dignore.tests.seed -Dtests.jvm.argline="-Des.entitlements.enabled=true" checkPart3
|
||||
timeout_in_minutes: 300
|
||||
agents:
|
||||
provider: gcp
|
||||
image: family/elasticsearch-ubuntu-2004
|
||||
machineType: custom-32-98304
|
||||
buildDirectory: /dev/shm/bk
|
11
.buildkite/pipelines/pull-request/part-4-entitlements.yml
Normal file
11
.buildkite/pipelines/pull-request/part-4-entitlements.yml
Normal file
|
@ -0,0 +1,11 @@
|
|||
config:
|
||||
allow-labels: "test-entitlements"
|
||||
steps:
|
||||
- label: part-4-entitlements
|
||||
command: .ci/scripts/run-gradle.sh -Dignore.tests.seed -Dtests.jvm.argline="-Des.entitlements.enabled=true" checkPart4
|
||||
timeout_in_minutes: 300
|
||||
agents:
|
||||
provider: gcp
|
||||
image: family/elasticsearch-ubuntu-2004
|
||||
machineType: custom-32-98304
|
||||
buildDirectory: /dev/shm/bk
|
11
.buildkite/pipelines/pull-request/part-5-entitlements.yml
Normal file
11
.buildkite/pipelines/pull-request/part-5-entitlements.yml
Normal file
|
@ -0,0 +1,11 @@
|
|||
config:
|
||||
allow-labels: "test-entitlements"
|
||||
steps:
|
||||
- label: part-5-entitlements
|
||||
command: .ci/scripts/run-gradle.sh -Dignore.tests.seed -Dtests.jvm.argline="-Des.entitlements.enabled=true" checkPart5
|
||||
timeout_in_minutes: 300
|
||||
agents:
|
||||
provider: gcp
|
||||
image: family/elasticsearch-ubuntu-2004
|
||||
machineType: custom-32-98304
|
||||
buildDirectory: /dev/shm/bk
|
|
@ -3,7 +3,9 @@ config:
|
|||
skip-labels: []
|
||||
steps:
|
||||
- label: precommit
|
||||
command: .ci/scripts/run-gradle.sh -Dignore.tests.seed precommit
|
||||
command: |
|
||||
.buildkite/scripts/spotless.sh
|
||||
.ci/scripts/run-gradle.sh -Dignore.tests.seed precommit
|
||||
timeout_in_minutes: 300
|
||||
agents:
|
||||
provider: gcp
|
||||
|
|
44
.buildkite/scripts/spotless.sh
Executable file
44
.buildkite/scripts/spotless.sh
Executable file
|
@ -0,0 +1,44 @@
|
|||
#!/bin/bash
|
||||
|
||||
if [[ -z "${BUILDKITE_PULL_REQUEST:-}" ]]; then
|
||||
echo "Not a pull request, skipping spotless"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if ! git diff --exit-code; then
|
||||
echo "Changes are present before running spotless, not running"
|
||||
git status
|
||||
exit 0
|
||||
fi
|
||||
|
||||
NEW_COMMIT_MESSAGE="[CI] Auto commit changes from spotless"
|
||||
PREVIOUS_COMMIT_MESSAGE="$(git log -1 --pretty=%B)"
|
||||
|
||||
echo "--- Running spotless"
|
||||
.ci/scripts/run-gradle.sh -Dscan.tag.NESTED spotlessApply
|
||||
|
||||
if git diff --exit-code; then
|
||||
echo "No changes found after running spotless. Don't need to auto commit."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [[ "$NEW_COMMIT_MESSAGE" == "$PREVIOUS_COMMIT_MESSAGE" ]]; then
|
||||
echo "Changes found after running spotless"
|
||||
echo "CI already attempted to commit these changes, but the file(s) seem to have changed again."
|
||||
echo "Please review and fix manually."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
git config --global user.name elasticsearchmachine
|
||||
git config --global user.email 'infra-root+elasticsearchmachine@elastic.co'
|
||||
|
||||
gh pr checkout "${BUILDKITE_PULL_REQUEST}"
|
||||
git add -u .
|
||||
git commit -m "$NEW_COMMIT_MESSAGE"
|
||||
git push
|
||||
|
||||
# After the git push, the new commit will trigger a new build within a few seconds and this build should get cancelled
|
||||
# So, let's just sleep to give the build time to cancel itself without an error
|
||||
# If it doesn't get cancelled for some reason, then exit with an error, because we don't want this build to be green (we just don't want it to generate an error either)
|
||||
sleep 300
|
||||
exit 1
|
|
@ -16,6 +16,6 @@ BWC_VERSION:
|
|||
- "8.14.3"
|
||||
- "8.15.5"
|
||||
- "8.16.2"
|
||||
- "8.17.0"
|
||||
- "8.17.1"
|
||||
- "8.18.0"
|
||||
- "9.0.0"
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
BWC_VERSION:
|
||||
- "8.16.2"
|
||||
- "8.17.0"
|
||||
- "8.17.1"
|
||||
- "8.18.0"
|
||||
- "9.0.0"
|
||||
|
|
|
@ -439,7 +439,7 @@ class PublishPluginFuncTest extends AbstractGradleFuncTest {
|
|||
// scm info only added for internal builds
|
||||
internalBuild()
|
||||
buildFile << """
|
||||
buildParams.getGitOriginProperty().set("https://some-repo.com/repo.git")
|
||||
buildParams.setGitOrigin("https://some-repo.com/repo.git")
|
||||
apply plugin:'elasticsearch.java'
|
||||
apply plugin:'elasticsearch.publish'
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@ public enum DockerBase {
|
|||
// Chainguard based wolfi image with latest jdk
|
||||
// This is usually updated via renovatebot
|
||||
// spotless:off
|
||||
WOLFI("docker.elastic.co/wolfi/chainguard-base:latest@sha256:32f06b169bb4b0f257fbb10e8c8379f06d3ee1355c89b3327cb623781a29590e",
|
||||
WOLFI("docker.elastic.co/wolfi/chainguard-base:latest@sha256:1b51ff6dba78c98d3e02b0cd64a8ce3238c7a40408d21e3af12a329d44db6f23",
|
||||
"-wolfi",
|
||||
"apk"
|
||||
),
|
||||
|
|
|
@ -132,7 +132,7 @@ public class ElasticsearchJavaBasePlugin implements Plugin<Project> {
|
|||
public void configureCompile(Project project) {
|
||||
project.getExtensions().getExtraProperties().set("compactProfile", "full");
|
||||
JavaPluginExtension java = project.getExtensions().getByType(JavaPluginExtension.class);
|
||||
if (buildParams.getJavaToolChainSpec().isPresent()) {
|
||||
if (buildParams.getJavaToolChainSpec().getOrNull() != null) {
|
||||
java.toolchain(buildParams.getJavaToolChainSpec().get());
|
||||
}
|
||||
java.setSourceCompatibility(buildParams.getMinimumRuntimeVersion());
|
||||
|
|
|
@ -13,7 +13,6 @@ import com.github.jengelman.gradle.plugins.shadow.ShadowBasePlugin;
|
|||
|
||||
import org.elasticsearch.gradle.OS;
|
||||
import org.elasticsearch.gradle.internal.conventions.util.Util;
|
||||
import org.elasticsearch.gradle.internal.info.BuildParameterExtension;
|
||||
import org.elasticsearch.gradle.internal.info.GlobalBuildInfoPlugin;
|
||||
import org.elasticsearch.gradle.internal.test.ErrorReportingTestListener;
|
||||
import org.elasticsearch.gradle.internal.test.SimpleCommandLineArgumentProvider;
|
||||
|
@ -27,7 +26,6 @@ import org.gradle.api.Task;
|
|||
import org.gradle.api.artifacts.Configuration;
|
||||
import org.gradle.api.file.FileCollection;
|
||||
import org.gradle.api.plugins.JavaPlugin;
|
||||
import org.gradle.api.provider.Property;
|
||||
import org.gradle.api.provider.ProviderFactory;
|
||||
import org.gradle.api.tasks.SourceSet;
|
||||
import org.gradle.api.tasks.SourceSetContainer;
|
||||
|
@ -56,8 +54,7 @@ public abstract class ElasticsearchTestBasePlugin implements Plugin<Project> {
|
|||
@Override
|
||||
public void apply(Project project) {
|
||||
project.getRootProject().getPlugins().apply(GlobalBuildInfoPlugin.class);
|
||||
Property<BuildParameterExtension> buildParams = loadBuildParams(project);
|
||||
|
||||
var buildParams = loadBuildParams(project);
|
||||
project.getPluginManager().apply(GradleTestPolicySetupPlugin.class);
|
||||
// for fips mode check
|
||||
project.getRootProject().getPluginManager().apply(GlobalBuildInfoPlugin.class);
|
||||
|
|
|
@ -66,7 +66,7 @@ public class InternalDistributionBwcSetupPlugin implements Plugin<Project> {
|
|||
project.getRootProject().getPluginManager().apply(GlobalBuildInfoPlugin.class);
|
||||
project.getPlugins().apply(JvmToolchainsPlugin.class);
|
||||
toolChainService = project.getExtensions().getByType(JavaToolchainService.class);
|
||||
BuildParameterExtension buildParams = loadBuildParams(project).get();
|
||||
var buildParams = loadBuildParams(project).get();
|
||||
Boolean isCi = buildParams.isCi();
|
||||
buildParams.getBwcVersions().forPreviousUnreleased((BwcVersions.UnreleasedVersionInfo unreleasedVersion) -> {
|
||||
configureBwcProject(
|
||||
|
|
|
@ -20,7 +20,6 @@ import org.elasticsearch.gradle.distribution.ElasticsearchDistributionTypes;
|
|||
import org.elasticsearch.gradle.internal.distribution.InternalElasticsearchDistributionTypes;
|
||||
import org.elasticsearch.gradle.internal.docker.DockerSupportPlugin;
|
||||
import org.elasticsearch.gradle.internal.docker.DockerSupportService;
|
||||
import org.elasticsearch.gradle.internal.info.BuildParameterExtension;
|
||||
import org.elasticsearch.gradle.internal.info.GlobalBuildInfoPlugin;
|
||||
import org.elasticsearch.gradle.util.GradleUtils;
|
||||
import org.gradle.api.GradleException;
|
||||
|
@ -49,7 +48,7 @@ public class InternalDistributionDownloadPlugin implements Plugin<Project> {
|
|||
// this is needed for isInternal
|
||||
project.getRootProject().getPluginManager().apply(GlobalBuildInfoPlugin.class);
|
||||
project.getRootProject().getPluginManager().apply(DockerSupportPlugin.class);
|
||||
BuildParameterExtension buildParams = loadBuildParams(project).get();
|
||||
var buildParams = loadBuildParams(project).get();
|
||||
|
||||
DistributionDownloadPlugin distributionDownloadPlugin = project.getPlugins().apply(DistributionDownloadPlugin.class);
|
||||
Provider<DockerSupportService> dockerSupport = GradleUtils.getBuildService(
|
||||
|
@ -61,7 +60,7 @@ public class InternalDistributionDownloadPlugin implements Plugin<Project> {
|
|||
);
|
||||
registerInternalDistributionResolutions(
|
||||
DistributionDownloadPlugin.getRegistrationsContainer(project),
|
||||
buildParams.getBwcVersionsProperty()
|
||||
buildParams.getBwcVersionsProvider()
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
@ -10,7 +10,6 @@
|
|||
package org.elasticsearch.gradle.internal;
|
||||
|
||||
import org.elasticsearch.gradle.VersionProperties;
|
||||
import org.elasticsearch.gradle.internal.info.BuildParameterExtension;
|
||||
import org.elasticsearch.gradle.internal.info.GlobalBuildInfoPlugin;
|
||||
import org.elasticsearch.gradle.testclusters.ElasticsearchCluster;
|
||||
import org.elasticsearch.gradle.testclusters.TestClustersPlugin;
|
||||
|
@ -26,7 +25,7 @@ public class InternalTestClustersPlugin implements Plugin<Project> {
|
|||
public void apply(Project project) {
|
||||
project.getPlugins().apply(InternalDistributionDownloadPlugin.class);
|
||||
project.getRootProject().getRootProject().getPlugins().apply(GlobalBuildInfoPlugin.class);
|
||||
BuildParameterExtension buildParams = loadBuildParams(project).get();
|
||||
var buildParams = loadBuildParams(project).get();
|
||||
project.getRootProject().getPluginManager().apply(InternalReaperPlugin.class);
|
||||
TestClustersPlugin testClustersPlugin = project.getPlugins().apply(TestClustersPlugin.class);
|
||||
testClustersPlugin.setRuntimeJava(buildParams.getRuntimeJavaHome());
|
||||
|
|
|
@ -13,175 +13,58 @@ import org.elasticsearch.gradle.internal.BwcVersions;
|
|||
import org.gradle.api.Action;
|
||||
import org.gradle.api.JavaVersion;
|
||||
import org.gradle.api.Task;
|
||||
import org.gradle.api.provider.Property;
|
||||
import org.gradle.api.provider.Provider;
|
||||
import org.gradle.api.provider.ProviderFactory;
|
||||
import org.gradle.jvm.toolchain.JavaToolchainSpec;
|
||||
|
||||
import java.io.File;
|
||||
import java.time.ZoneOffset;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
|
||||
public abstract class BuildParameterExtension {
|
||||
private final Provider<Boolean> inFipsJvm;
|
||||
private final Provider<File> runtimeJavaHome;
|
||||
private final Boolean isRuntimeJavaHomeSet;
|
||||
private final List<JavaHome> javaVersions;
|
||||
private final JavaVersion minimumCompilerVersion;
|
||||
private final JavaVersion minimumRuntimeVersion;
|
||||
private final JavaVersion gradleJavaVersion;
|
||||
private final Provider<JavaVersion> runtimeJavaVersion;
|
||||
private final Provider<? extends Action<JavaToolchainSpec>> javaToolChainSpec;
|
||||
private final Provider<String> runtimeJavaDetails;
|
||||
private final String gitRevision;
|
||||
private transient AtomicReference<ZonedDateTime> buildDate = new AtomicReference<>();
|
||||
private final String testSeed;
|
||||
private final Boolean isCi;
|
||||
private final Integer defaultParallel;
|
||||
private final Boolean isSnapshotBuild;
|
||||
public interface BuildParameterExtension {
|
||||
String EXTENSION_NAME = "buildParams";
|
||||
|
||||
public BuildParameterExtension(
|
||||
ProviderFactory providers,
|
||||
Provider<File> runtimeJavaHome,
|
||||
Provider<? extends Action<JavaToolchainSpec>> javaToolChainSpec,
|
||||
Provider<JavaVersion> runtimeJavaVersion,
|
||||
boolean isRuntimeJavaHomeSet,
|
||||
Provider<String> runtimeJavaDetails,
|
||||
List<JavaHome> javaVersions,
|
||||
JavaVersion minimumCompilerVersion,
|
||||
JavaVersion minimumRuntimeVersion,
|
||||
JavaVersion gradleJavaVersion,
|
||||
String gitRevision,
|
||||
String gitOrigin,
|
||||
ZonedDateTime buildDate,
|
||||
String testSeed,
|
||||
boolean isCi,
|
||||
int defaultParallel,
|
||||
final boolean isSnapshotBuild,
|
||||
Provider<BwcVersions> bwcVersions
|
||||
) {
|
||||
this.inFipsJvm = providers.systemProperty("tests.fips.enabled").map(BuildParameterExtension::parseBoolean);
|
||||
this.runtimeJavaHome = runtimeJavaHome;
|
||||
this.javaToolChainSpec = javaToolChainSpec;
|
||||
this.runtimeJavaVersion = runtimeJavaVersion;
|
||||
this.isRuntimeJavaHomeSet = isRuntimeJavaHomeSet;
|
||||
this.runtimeJavaDetails = runtimeJavaDetails;
|
||||
this.javaVersions = javaVersions;
|
||||
this.minimumCompilerVersion = minimumCompilerVersion;
|
||||
this.minimumRuntimeVersion = minimumRuntimeVersion;
|
||||
this.gradleJavaVersion = gradleJavaVersion;
|
||||
this.gitRevision = gitRevision;
|
||||
this.testSeed = testSeed;
|
||||
this.isCi = isCi;
|
||||
this.defaultParallel = defaultParallel;
|
||||
this.isSnapshotBuild = isSnapshotBuild;
|
||||
this.getBwcVersionsProperty().set(bwcVersions);
|
||||
this.getGitOriginProperty().set(gitOrigin);
|
||||
}
|
||||
boolean getInFipsJvm();
|
||||
|
||||
private static boolean parseBoolean(String s) {
|
||||
if (s == null) {
|
||||
return false;
|
||||
}
|
||||
return Boolean.parseBoolean(s);
|
||||
}
|
||||
Provider<File> getRuntimeJavaHome();
|
||||
|
||||
public boolean getInFipsJvm() {
|
||||
return inFipsJvm.getOrElse(false);
|
||||
}
|
||||
void withFipsEnabledOnly(Task task);
|
||||
|
||||
public Provider<File> getRuntimeJavaHome() {
|
||||
return runtimeJavaHome;
|
||||
}
|
||||
Boolean getIsRuntimeJavaHomeSet();
|
||||
|
||||
public void withFipsEnabledOnly(Task task) {
|
||||
task.onlyIf("FIPS mode disabled", task1 -> getInFipsJvm() == false);
|
||||
}
|
||||
List<JavaHome> getJavaVersions();
|
||||
|
||||
public Boolean getIsRuntimeJavaHomeSet() {
|
||||
return isRuntimeJavaHomeSet;
|
||||
}
|
||||
JavaVersion getMinimumCompilerVersion();
|
||||
|
||||
public List<JavaHome> getJavaVersions() {
|
||||
return javaVersions;
|
||||
}
|
||||
JavaVersion getMinimumRuntimeVersion();
|
||||
|
||||
public JavaVersion getMinimumCompilerVersion() {
|
||||
return minimumCompilerVersion;
|
||||
}
|
||||
JavaVersion getGradleJavaVersion();
|
||||
|
||||
public JavaVersion getMinimumRuntimeVersion() {
|
||||
return minimumRuntimeVersion;
|
||||
}
|
||||
Provider<JavaVersion> getRuntimeJavaVersion();
|
||||
|
||||
public JavaVersion getGradleJavaVersion() {
|
||||
return gradleJavaVersion;
|
||||
}
|
||||
Provider<? extends Action<JavaToolchainSpec>> getJavaToolChainSpec();
|
||||
|
||||
public Provider<JavaVersion> getRuntimeJavaVersion() {
|
||||
return runtimeJavaVersion;
|
||||
}
|
||||
Provider<String> getRuntimeJavaDetails();
|
||||
|
||||
public Provider<? extends Action<JavaToolchainSpec>> getJavaToolChainSpec() {
|
||||
return javaToolChainSpec;
|
||||
}
|
||||
String getGitRevision();
|
||||
|
||||
public Provider<String> getRuntimeJavaDetails() {
|
||||
return runtimeJavaDetails;
|
||||
}
|
||||
String getGitOrigin();
|
||||
|
||||
public String getGitRevision() {
|
||||
return gitRevision;
|
||||
}
|
||||
ZonedDateTime getBuildDate();
|
||||
|
||||
public String getGitOrigin() {
|
||||
return getGitOriginProperty().get();
|
||||
}
|
||||
String getTestSeed();
|
||||
|
||||
public ZonedDateTime getBuildDate() {
|
||||
ZonedDateTime value = buildDate.get();
|
||||
if (value == null) {
|
||||
value = ZonedDateTime.now(ZoneOffset.UTC);
|
||||
if (buildDate.compareAndSet(null, value) == false) {
|
||||
// If another thread initialized it first, return the initialized value
|
||||
value = buildDate.get();
|
||||
}
|
||||
}
|
||||
return value;
|
||||
}
|
||||
Boolean isCi();
|
||||
|
||||
public String getTestSeed() {
|
||||
return testSeed;
|
||||
}
|
||||
Integer getDefaultParallel();
|
||||
|
||||
public Boolean isCi() {
|
||||
return isCi;
|
||||
}
|
||||
Boolean isSnapshotBuild();
|
||||
|
||||
public Integer getDefaultParallel() {
|
||||
return defaultParallel;
|
||||
}
|
||||
BwcVersions getBwcVersions();
|
||||
|
||||
public Boolean isSnapshotBuild() {
|
||||
return isSnapshotBuild;
|
||||
}
|
||||
Provider<BwcVersions> getBwcVersionsProvider();
|
||||
|
||||
public BwcVersions getBwcVersions() {
|
||||
return getBwcVersionsProperty().get();
|
||||
}
|
||||
Random getRandom();
|
||||
|
||||
public abstract Property<BwcVersions> getBwcVersionsProperty();
|
||||
|
||||
public abstract Property<String> getGitOriginProperty();
|
||||
|
||||
public Random getRandom() {
|
||||
return new Random(Long.parseUnsignedLong(testSeed.split(":")[0], 16));
|
||||
}
|
||||
|
||||
public Boolean isGraalVmRuntime() {
|
||||
return runtimeJavaDetails.get().toLowerCase().contains("graalvm");
|
||||
}
|
||||
Boolean isGraalVmRuntime();
|
||||
}
|
||||
|
|
|
@ -0,0 +1,245 @@
|
|||
/*
|
||||
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
||||
* or more contributor license agreements. Licensed under the "Elastic License
|
||||
* 2.0", the "GNU Affero General Public License v3.0 only", and the "Server Side
|
||||
* Public License v 1"; you may not use this file except in compliance with, at
|
||||
* your election, the "Elastic License 2.0", the "GNU Affero General Public
|
||||
* License v3.0 only", or the "Server Side Public License, v 1".
|
||||
*/
|
||||
|
||||
package org.elasticsearch.gradle.internal.info;
|
||||
|
||||
import org.elasticsearch.gradle.internal.BwcVersions;
|
||||
import org.gradle.api.Action;
|
||||
import org.gradle.api.JavaVersion;
|
||||
import org.gradle.api.Task;
|
||||
import org.gradle.api.provider.Provider;
|
||||
import org.gradle.api.provider.ProviderFactory;
|
||||
import org.gradle.jvm.toolchain.JavaToolchainSpec;
|
||||
|
||||
import java.io.File;
|
||||
import java.time.ZoneOffset;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
public abstract class DefaultBuildParameterExtension implements BuildParameterExtension {
|
||||
private final Provider<Boolean> inFipsJvm;
|
||||
private final Provider<File> runtimeJavaHome;
|
||||
private final Boolean isRuntimeJavaHomeSet;
|
||||
private final List<JavaHome> javaVersions;
|
||||
private final JavaVersion minimumCompilerVersion;
|
||||
private final JavaVersion minimumRuntimeVersion;
|
||||
private final JavaVersion gradleJavaVersion;
|
||||
private final Provider<JavaVersion> runtimeJavaVersion;
|
||||
private final Provider<? extends Action<JavaToolchainSpec>> javaToolChainSpec;
|
||||
private final Provider<String> runtimeJavaDetails;
|
||||
private final String gitRevision;
|
||||
|
||||
private transient AtomicReference<ZonedDateTime> buildDate = new AtomicReference<>();
|
||||
private final String testSeed;
|
||||
private final Boolean isCi;
|
||||
private final Integer defaultParallel;
|
||||
private final Boolean isSnapshotBuild;
|
||||
|
||||
// not final for testing
|
||||
private Provider<BwcVersions> bwcVersions;
|
||||
private String gitOrigin;
|
||||
|
||||
public DefaultBuildParameterExtension(
|
||||
ProviderFactory providers,
|
||||
Provider<File> runtimeJavaHome,
|
||||
Provider<? extends Action<JavaToolchainSpec>> javaToolChainSpec,
|
||||
Provider<JavaVersion> runtimeJavaVersion,
|
||||
boolean isRuntimeJavaHomeSet,
|
||||
Provider<String> runtimeJavaDetails,
|
||||
List<JavaHome> javaVersions,
|
||||
JavaVersion minimumCompilerVersion,
|
||||
JavaVersion minimumRuntimeVersion,
|
||||
JavaVersion gradleJavaVersion,
|
||||
String gitRevision,
|
||||
String gitOrigin,
|
||||
String testSeed,
|
||||
boolean isCi,
|
||||
int defaultParallel,
|
||||
final boolean isSnapshotBuild,
|
||||
Provider<BwcVersions> bwcVersions
|
||||
) {
|
||||
this.inFipsJvm = providers.systemProperty("tests.fips.enabled").map(DefaultBuildParameterExtension::parseBoolean);
|
||||
this.runtimeJavaHome = cache(providers, runtimeJavaHome);
|
||||
this.javaToolChainSpec = cache(providers, javaToolChainSpec);
|
||||
this.runtimeJavaVersion = cache(providers, runtimeJavaVersion);
|
||||
this.isRuntimeJavaHomeSet = isRuntimeJavaHomeSet;
|
||||
this.runtimeJavaDetails = cache(providers, runtimeJavaDetails);
|
||||
this.javaVersions = javaVersions;
|
||||
this.minimumCompilerVersion = minimumCompilerVersion;
|
||||
this.minimumRuntimeVersion = minimumRuntimeVersion;
|
||||
this.gradleJavaVersion = gradleJavaVersion;
|
||||
this.gitRevision = gitRevision;
|
||||
this.testSeed = testSeed;
|
||||
this.isCi = isCi;
|
||||
this.defaultParallel = defaultParallel;
|
||||
this.isSnapshotBuild = isSnapshotBuild;
|
||||
this.bwcVersions = cache(providers, bwcVersions);
|
||||
this.gitOrigin = gitOrigin;
|
||||
}
|
||||
|
||||
// This is a workaround for https://github.com/gradle/gradle/issues/25550
|
||||
private <T> Provider<T> cache(ProviderFactory providerFactory, Provider<T> incomingProvider) {
|
||||
SingleObjectCache<T> cache = new SingleObjectCache<>();
|
||||
return providerFactory.provider(() -> cache.computeIfAbsent(() -> incomingProvider.getOrNull()));
|
||||
}
|
||||
|
||||
private static boolean parseBoolean(String s) {
|
||||
if (s == null) {
|
||||
return false;
|
||||
}
|
||||
return Boolean.parseBoolean(s);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getInFipsJvm() {
|
||||
return inFipsJvm.getOrElse(false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Provider<File> getRuntimeJavaHome() {
|
||||
return runtimeJavaHome;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void withFipsEnabledOnly(Task task) {
|
||||
task.onlyIf("FIPS mode disabled", task1 -> getInFipsJvm() == false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean getIsRuntimeJavaHomeSet() {
|
||||
return isRuntimeJavaHomeSet;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<JavaHome> getJavaVersions() {
|
||||
return javaVersions;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JavaVersion getMinimumCompilerVersion() {
|
||||
return minimumCompilerVersion;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JavaVersion getMinimumRuntimeVersion() {
|
||||
return minimumRuntimeVersion;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JavaVersion getGradleJavaVersion() {
|
||||
return gradleJavaVersion;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Provider<JavaVersion> getRuntimeJavaVersion() {
|
||||
return runtimeJavaVersion;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Provider<? extends Action<JavaToolchainSpec>> getJavaToolChainSpec() {
|
||||
return javaToolChainSpec;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Provider<String> getRuntimeJavaDetails() {
|
||||
return runtimeJavaDetails;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getGitRevision() {
|
||||
return gitRevision;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getGitOrigin() {
|
||||
return gitOrigin;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ZonedDateTime getBuildDate() {
|
||||
ZonedDateTime value = buildDate.get();
|
||||
if (value == null) {
|
||||
value = ZonedDateTime.now(ZoneOffset.UTC);
|
||||
if (buildDate.compareAndSet(null, value) == false) {
|
||||
// If another thread initialized it first, return the initialized value
|
||||
value = buildDate.get();
|
||||
}
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTestSeed() {
|
||||
return testSeed;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean isCi() {
|
||||
return isCi;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer getDefaultParallel() {
|
||||
return defaultParallel;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean isSnapshotBuild() {
|
||||
return isSnapshotBuild;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BwcVersions getBwcVersions() {
|
||||
return bwcVersions.get();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Random getRandom() {
|
||||
return new Random(Long.parseUnsignedLong(testSeed.split(":")[0], 16));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean isGraalVmRuntime() {
|
||||
return runtimeJavaDetails.get().toLowerCase().contains("graalvm");
|
||||
}
|
||||
|
||||
private static class SingleObjectCache<T> {
|
||||
private T instance;
|
||||
|
||||
public T computeIfAbsent(Supplier<T> supplier) {
|
||||
synchronized (this) {
|
||||
if (instance == null) {
|
||||
instance = supplier.get();
|
||||
}
|
||||
return instance;
|
||||
}
|
||||
}
|
||||
|
||||
public T get() {
|
||||
return instance;
|
||||
}
|
||||
}
|
||||
|
||||
public Provider<BwcVersions> getBwcVersionsProvider() {
|
||||
return bwcVersions;
|
||||
}
|
||||
|
||||
// for testing; not part of public api
|
||||
public void setBwcVersions(Provider<BwcVersions> bwcVersions) {
|
||||
this.bwcVersions = bwcVersions;
|
||||
}
|
||||
|
||||
// for testing; not part of public api
|
||||
public void setGitOrigin(String gitOrigin) {
|
||||
this.gitOrigin = gitOrigin;
|
||||
}
|
||||
}
|
|
@ -51,8 +51,6 @@ import java.io.InputStream;
|
|||
import java.io.InputStreamReader;
|
||||
import java.io.UncheckedIOException;
|
||||
import java.nio.file.Files;
|
||||
import java.time.ZoneOffset;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
@ -124,8 +122,10 @@ public class GlobalBuildInfoPlugin implements Plugin<Project> {
|
|||
);
|
||||
BuildParameterExtension buildParams = project.getExtensions()
|
||||
.create(
|
||||
"buildParams",
|
||||
BuildParameterExtension.class,
|
||||
BuildParameterExtension.EXTENSION_NAME,
|
||||
DefaultBuildParameterExtension.class,
|
||||
providers,
|
||||
actualRuntimeJavaHome,
|
||||
resolveToolchainSpecFromEnv(),
|
||||
actualRuntimeJavaHome.map(
|
||||
|
@ -145,7 +145,6 @@ public class GlobalBuildInfoPlugin implements Plugin<Project> {
|
|||
Jvm.current().getJavaVersion(),
|
||||
gitInfo.getRevision(),
|
||||
gitInfo.getOrigin(),
|
||||
ZonedDateTime.now(ZoneOffset.UTC),
|
||||
getTestSeed(),
|
||||
System.getenv("JENKINS_URL") != null || System.getenv("BUILDKITE_BUILD_URL") != null || System.getProperty("isCI") != null,
|
||||
ParallelDetector.findDefaultParallel(project),
|
||||
|
|
|
@ -12,12 +12,10 @@ package org.elasticsearch.gradle.internal.precommit;
|
|||
import org.elasticsearch.gradle.dependencies.CompileOnlyResolvePlugin;
|
||||
import org.elasticsearch.gradle.internal.ExportElasticsearchBuildResourcesTask;
|
||||
import org.elasticsearch.gradle.internal.conventions.precommit.PrecommitPlugin;
|
||||
import org.elasticsearch.gradle.internal.info.BuildParameterExtension;
|
||||
import org.gradle.api.Project;
|
||||
import org.gradle.api.Task;
|
||||
import org.gradle.api.artifacts.Configuration;
|
||||
import org.gradle.api.artifacts.component.ModuleComponentIdentifier;
|
||||
import org.gradle.api.provider.Property;
|
||||
import org.gradle.api.tasks.TaskProvider;
|
||||
|
||||
import java.io.File;
|
||||
|
@ -34,7 +32,7 @@ public class ThirdPartyAuditPrecommitPlugin extends PrecommitPlugin {
|
|||
@Override
|
||||
public TaskProvider<? extends Task> createTask(Project project) {
|
||||
project.getRootProject().getPlugins().apply(CompileOnlyResolvePlugin.class);
|
||||
Property<BuildParameterExtension> buildParams = loadBuildParams(project);
|
||||
var buildParams = loadBuildParams(project);
|
||||
|
||||
project.getPlugins().apply(CompileOnlyResolvePlugin.class);
|
||||
project.getConfigurations().create("forbiddenApisCliJar");
|
||||
|
|
|
@ -10,7 +10,6 @@
|
|||
package org.elasticsearch.gradle.internal.snyk;
|
||||
|
||||
import org.elasticsearch.gradle.internal.conventions.info.GitInfo;
|
||||
import org.elasticsearch.gradle.internal.info.BuildParameterExtension;
|
||||
import org.elasticsearch.gradle.internal.info.GlobalBuildInfoPlugin;
|
||||
import org.gradle.api.Plugin;
|
||||
import org.gradle.api.Project;
|
||||
|
@ -18,7 +17,6 @@ import org.gradle.api.artifacts.Configuration;
|
|||
import org.gradle.api.file.ProjectLayout;
|
||||
import org.gradle.api.plugins.JavaPlugin;
|
||||
import org.gradle.api.plugins.JavaPluginExtension;
|
||||
import org.gradle.api.provider.Property;
|
||||
import org.gradle.api.provider.ProviderFactory;
|
||||
import org.gradle.api.tasks.SourceSet;
|
||||
|
||||
|
@ -41,7 +39,7 @@ public class SnykDependencyMonitoringGradlePlugin implements Plugin<Project> {
|
|||
@Override
|
||||
public void apply(Project project) {
|
||||
project.getRootProject().getPlugins().apply(GlobalBuildInfoPlugin.class);
|
||||
Property<BuildParameterExtension> buildParams = loadBuildParams(project);
|
||||
var buildParams = loadBuildParams(project);
|
||||
|
||||
var generateTaskProvider = project.getTasks()
|
||||
.register("generateSnykDependencyGraph", GenerateSnykDependencyGraph.class, generateSnykDependencyGraph -> {
|
||||
|
|
|
@ -35,7 +35,7 @@ public class TestWithSslPlugin implements Plugin<Project> {
|
|||
@Override
|
||||
public void apply(Project project) {
|
||||
File keyStoreDir = new File(project.getBuildDir(), "keystore");
|
||||
BuildParameterExtension buildParams = project.getRootProject().getExtensions().getByType(BuildParameterExtension.class);
|
||||
var buildParams = project.getRootProject().getExtensions().getByType(BuildParameterExtension.class);
|
||||
TaskProvider<ExportElasticsearchBuildResourcesTask> exportKeyStore = project.getTasks()
|
||||
.register("copyTestCertificates", ExportElasticsearchBuildResourcesTask.class, (t) -> {
|
||||
t.copy("test/ssl/test-client.crt");
|
||||
|
|
|
@ -11,7 +11,6 @@ package org.elasticsearch.gradle.internal.test.rest.compat.compat;
|
|||
|
||||
import org.elasticsearch.gradle.Version;
|
||||
import org.elasticsearch.gradle.internal.ElasticsearchJavaBasePlugin;
|
||||
import org.elasticsearch.gradle.internal.info.BuildParameterExtension;
|
||||
import org.elasticsearch.gradle.internal.info.GlobalBuildInfoPlugin;
|
||||
import org.elasticsearch.gradle.internal.test.rest.CopyRestApiTask;
|
||||
import org.elasticsearch.gradle.internal.test.rest.CopyRestTestsTask;
|
||||
|
@ -78,7 +77,7 @@ public abstract class AbstractYamlRestCompatTestPlugin implements Plugin<Project
|
|||
@Override
|
||||
public void apply(Project project) {
|
||||
project.getRootProject().getRootProject().getPlugins().apply(GlobalBuildInfoPlugin.class);
|
||||
BuildParameterExtension buildParams = loadBuildParams(project).get();
|
||||
var buildParams = loadBuildParams(project).get();
|
||||
|
||||
final Path compatRestResourcesDir = Path.of("restResources").resolve("compat");
|
||||
final Path compatSpecsDir = compatRestResourcesDir.resolve("yamlSpecs");
|
||||
|
|
|
@ -0,0 +1,112 @@
|
|||
/*
|
||||
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
||||
* or more contributor license agreements. Licensed under the "Elastic License
|
||||
* 2.0", the "GNU Affero General Public License v3.0 only", and the "Server Side
|
||||
* Public License v 1"; you may not use this file except in compliance with, at
|
||||
* your election, the "Elastic License 2.0", the "GNU Affero General Public
|
||||
* License v3.0 only", or the "Server Side Public License, v 1".
|
||||
*/
|
||||
|
||||
package org.elasticsearch.gradle.internal.info
|
||||
|
||||
import spock.lang.Specification
|
||||
|
||||
import org.elasticsearch.gradle.internal.BwcVersions
|
||||
import org.gradle.api.JavaVersion
|
||||
import org.gradle.api.Project
|
||||
import org.gradle.api.provider.Provider
|
||||
import org.gradle.api.provider.ProviderFactory
|
||||
import org.gradle.testfixtures.ProjectBuilder
|
||||
import org.junit.Assert
|
||||
|
||||
import java.util.concurrent.CountDownLatch
|
||||
import java.util.concurrent.Executors
|
||||
import java.util.concurrent.Future
|
||||
import java.util.concurrent.TimeUnit
|
||||
import java.util.concurrent.atomic.AtomicInteger
|
||||
|
||||
import static org.junit.Assert.fail
|
||||
|
||||
class BuildParameterExtensionSpec extends Specification {
|
||||
|
||||
ProjectBuilder projectBuilder = new ProjectBuilder()
|
||||
|
||||
def "#getterName is cached anc concurrently accessible"() {
|
||||
given:
|
||||
def project = projectBuilder.build()
|
||||
def providers = project.getProviders();
|
||||
def buildParams = extension(project, providers)
|
||||
int numberOfThreads = 10;
|
||||
when:
|
||||
var service = Executors.newFixedThreadPool(numberOfThreads)
|
||||
var latch = new CountDownLatch(numberOfThreads)
|
||||
def testedProvider = buildParams."$getterName"()
|
||||
def futures = (1..numberOfThreads).collect {
|
||||
service.submit(
|
||||
() -> {
|
||||
try {
|
||||
testedProvider.get()
|
||||
} catch (AssertionError e) {
|
||||
latch.countDown()
|
||||
Assert.fail("Accessing cached provider more than once")
|
||||
}
|
||||
latch.countDown()
|
||||
}
|
||||
)
|
||||
}
|
||||
latch.await(10, TimeUnit.SECONDS)
|
||||
|
||||
then:
|
||||
futures.collect { it.state() }.any() { it == Future.State.FAILED } == false
|
||||
|
||||
where:
|
||||
getterName << [
|
||||
"getRuntimeJavaHome",
|
||||
"getJavaToolChainSpec",
|
||||
"getRuntimeJavaDetails",
|
||||
"getRuntimeJavaVersion",
|
||||
"getBwcVersionsProvider"
|
||||
]
|
||||
}
|
||||
|
||||
private BuildParameterExtension extension(Project project, ProviderFactory providers) {
|
||||
return project.getExtensions().create(
|
||||
BuildParameterExtension.class, "buildParameters", DefaultBuildParameterExtension.class,
|
||||
providers,
|
||||
providerMock(),
|
||||
providerMock(),
|
||||
providerMock(),
|
||||
true,
|
||||
providerMock(),
|
||||
[
|
||||
Mock(JavaHome),
|
||||
Mock(JavaHome),
|
||||
],
|
||||
JavaVersion.VERSION_11,
|
||||
JavaVersion.VERSION_11,
|
||||
JavaVersion.VERSION_11,
|
||||
"gitRevision",
|
||||
"gitOrigin",
|
||||
"testSeed",
|
||||
false,
|
||||
5,
|
||||
true,
|
||||
// cannot use Mock here because of the way the provider is used by gradle internal property api
|
||||
providerMock()
|
||||
)
|
||||
}
|
||||
|
||||
private Provider providerMock() {
|
||||
Provider provider = Mock(Provider)
|
||||
AtomicInteger counter = new AtomicInteger(0)
|
||||
provider.getOrNull() >> {
|
||||
println "accessing provider"
|
||||
return counter.get() == 1 ? fail("Accessing cached provider more than once") : counter.incrementAndGet()
|
||||
}
|
||||
provider.get() >> {
|
||||
fail("Accessing cached provider directly")
|
||||
}
|
||||
return provider
|
||||
|
||||
}
|
||||
}
|
|
@ -876,10 +876,8 @@ public class ElasticsearchNode implements TestClusterConfiguration {
|
|||
// Don't inherit anything from the environment for as that would lack reproducibility
|
||||
environment.clear();
|
||||
environment.putAll(getESEnvironment());
|
||||
if (cliJvmArgs.isEmpty() == false) {
|
||||
String cliJvmArgsString = String.join(" ", cliJvmArgs);
|
||||
environment.put("CLI_JAVA_OPTS", cliJvmArgsString);
|
||||
}
|
||||
String cliJvmArgsString = String.join(" ", cliJvmArgs);
|
||||
environment.put("CLI_JAVA_OPTS", cliJvmArgsString + " " + System.getProperty("tests.jvm.argline", ""));
|
||||
|
||||
// Direct the stderr to the ES log file. This should capture any jvm problems to start.
|
||||
// Stdout is discarded because ES duplicates the log file to stdout when run in the foreground.
|
||||
|
|
|
@ -183,7 +183,7 @@ abstract class AbstractGradleFuncTest extends Specification {
|
|||
]
|
||||
|
||||
BwcVersions versions = new BwcVersions(currentVersion, versionList, ['main', '8.x', '8.3', '8.2', '8.1', '7.16'])
|
||||
buildParams.getBwcVersionsProperty().set(versions)
|
||||
buildParams.setBwcVersions(project.provider { versions} )
|
||||
"""
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +0,0 @@
|
|||
pr: 104683
|
||||
summary: "Feature: re-structure document ID generation favoring _id inverted index compression"
|
||||
area: Logs
|
||||
type: enhancement
|
||||
issues: []
|
|
@ -1,5 +0,0 @@
|
|||
pr: 112881
|
||||
summary: "ESQL: Remove parent from `FieldAttribute`"
|
||||
area: ES|QL
|
||||
type: enhancement
|
||||
issues: []
|
|
@ -1,5 +0,0 @@
|
|||
pr: 112989
|
||||
summary: Upgrade Bouncy Castle FIPS dependencies
|
||||
area: Security
|
||||
type: upgrade
|
||||
issues: []
|
|
@ -1,5 +0,0 @@
|
|||
pr: 113194
|
||||
summary: Add Search Phase APM metrics
|
||||
area: Search
|
||||
type: enhancement
|
||||
issues: []
|
|
@ -1,5 +0,0 @@
|
|||
pr: 113713
|
||||
summary: Adding inference endpoint validation for `AzureAiStudioService`
|
||||
area: Machine Learning
|
||||
type: enhancement
|
||||
issues: []
|
|
@ -1,5 +0,0 @@
|
|||
pr: 113920
|
||||
summary: Add initial support for `semantic_text` field type
|
||||
area: Search
|
||||
type: enhancement
|
||||
issues: []
|
|
@ -1,7 +0,0 @@
|
|||
pr: 114334
|
||||
summary: Don't return TEXT type for functions that take TEXT
|
||||
area: ES|QL
|
||||
type: bug
|
||||
issues:
|
||||
- 111537
|
||||
- 114333
|
|
@ -1,5 +0,0 @@
|
|||
pr: 114482
|
||||
summary: Remove snapshot build restriction for match and qstr functions
|
||||
area: ES|QL
|
||||
type: feature
|
||||
issues: []
|
|
@ -1,6 +0,0 @@
|
|||
pr: 114484
|
||||
summary: Add `docvalue_fields` Support for `dense_vector` Fields
|
||||
area: Search
|
||||
type: enhancement
|
||||
issues:
|
||||
- 108470
|
|
@ -1,5 +0,0 @@
|
|||
pr: 114620
|
||||
summary: "ES|QL: add metrics for functions"
|
||||
area: ES|QL
|
||||
type: enhancement
|
||||
issues: []
|
|
@ -1,6 +0,0 @@
|
|||
pr: 114665
|
||||
summary: Fixing remote ENRICH by pushing the Enrich inside `FragmentExec`
|
||||
area: ES|QL
|
||||
type: bug
|
||||
issues:
|
||||
- 105095
|
|
@ -1,6 +0,0 @@
|
|||
pr: 114681
|
||||
summary: "Support for unsigned 64 bit numbers in Cpu stats"
|
||||
area: Infra/Core
|
||||
type: enhancement
|
||||
issues:
|
||||
- 112274
|
|
@ -1,5 +0,0 @@
|
|||
pr: 114742
|
||||
summary: Adding support for additional mapping to simulate ingest API
|
||||
area: Ingest Node
|
||||
type: enhancement
|
||||
issues: []
|
|
@ -1,6 +0,0 @@
|
|||
pr: 114819
|
||||
summary: Don't use a `BytesStreamOutput` to copy keys in `BytesRefBlockHash`
|
||||
area: EQL
|
||||
type: bug
|
||||
issues:
|
||||
- 114599
|
|
@ -1,5 +0,0 @@
|
|||
pr: 114855
|
||||
summary: Add query rules retriever
|
||||
area: Relevance
|
||||
type: enhancement
|
||||
issues: [ ]
|
|
@ -1,5 +0,0 @@
|
|||
pr: 114862
|
||||
summary: "[Inference API] Add API to get configuration of inference services"
|
||||
area: Machine Learning
|
||||
type: enhancement
|
||||
issues: []
|
|
@ -1,5 +0,0 @@
|
|||
pr: 114869
|
||||
summary: Standardize error code when bulk body is invalid
|
||||
area: CRUD
|
||||
type: bug
|
||||
issues: []
|
|
@ -1,5 +0,0 @@
|
|||
pr: 114899
|
||||
summary: "ES|QL: Fix stats by constant expression"
|
||||
area: ES|QL
|
||||
type: bug
|
||||
issues: []
|
|
@ -1,5 +0,0 @@
|
|||
pr: 114924
|
||||
summary: Reducing error-level stack trace logging for normal events in `GeoIpDownloader`
|
||||
area: Ingest Node
|
||||
type: bug
|
||||
issues: []
|
|
@ -1,6 +0,0 @@
|
|||
pr: 114934
|
||||
summary: "[ES|QL] To_DatePeriod and To_TimeDuration return better error messages on\
|
||||
\ `union_type` fields"
|
||||
area: ES|QL
|
||||
type: bug
|
||||
issues: []
|
|
@ -1,6 +0,0 @@
|
|||
pr: 114964
|
||||
summary: Add a `monitor_stats` privilege and allow that privilege for remote cluster
|
||||
privileges
|
||||
area: Authorization
|
||||
type: enhancement
|
||||
issues: []
|
|
@ -1,6 +0,0 @@
|
|||
pr: 115041
|
||||
summary: Increase default `queue_capacity` to 10_000 and decrease max `queue_capacity`
|
||||
to 100_000
|
||||
area: Machine Learning
|
||||
type: enhancement
|
||||
issues: []
|
|
@ -1,7 +0,0 @@
|
|||
pr: 115091
|
||||
summary: Added stricter range type checks and runtime warnings for ENRICH
|
||||
area: ES|QL
|
||||
type: bug
|
||||
issues:
|
||||
- 107357
|
||||
- 116799
|
|
@ -1,6 +0,0 @@
|
|||
pr: 115102
|
||||
summary: Watch Next Run Interval Resets On Shard Move or Node Restart
|
||||
area: Watcher
|
||||
type: bug
|
||||
issues:
|
||||
- 111433
|
|
@ -1,6 +0,0 @@
|
|||
pr: 115142
|
||||
summary: Attempt to clean up index before remote transfer
|
||||
area: Recovery
|
||||
type: enhancement
|
||||
issues:
|
||||
- 104473
|
|
@ -1,6 +0,0 @@
|
|||
pr: 115266
|
||||
summary: ES|QL CCS uses `skip_unavailable` setting for handling disconnected remote
|
||||
clusters
|
||||
area: ES|QL
|
||||
type: enhancement
|
||||
issues: [ 114531 ]
|
|
@ -1,6 +0,0 @@
|
|||
pr: 115359
|
||||
summary: Adding support for simulate ingest mapping adddition for indices with mappings
|
||||
that do not come from templates
|
||||
area: Ingest Node
|
||||
type: enhancement
|
||||
issues: []
|
|
@ -1,9 +0,0 @@
|
|||
pr: 115414
|
||||
summary: Mitigate IOSession timeouts
|
||||
area: Machine Learning
|
||||
type: bug
|
||||
issues:
|
||||
- 114385
|
||||
- 114327
|
||||
- 114105
|
||||
- 114232
|
|
@ -1,6 +0,0 @@
|
|||
pr: 115459
|
||||
summary: Adds access to flags no_sub_matches and no_overlapping_matches to hyphenation-decompounder-tokenfilter
|
||||
area: Search
|
||||
type: enhancement
|
||||
issues:
|
||||
- 97849
|
|
@ -1,6 +0,0 @@
|
|||
pr: 115640
|
||||
summary: Fix NPE on plugin sync
|
||||
area: Infra/CLI
|
||||
type: bug
|
||||
issues:
|
||||
- 114818
|
|
@ -1,5 +0,0 @@
|
|||
pr: 115655
|
||||
summary: Better sizing `BytesRef` for Strings in Queries
|
||||
area: Search
|
||||
type: enhancement
|
||||
issues: []
|
|
@ -1,5 +0,0 @@
|
|||
pr: 115678
|
||||
summary: "ESQL: extract common filter from aggs"
|
||||
area: ES|QL
|
||||
type: enhancement
|
||||
issues: []
|
|
@ -1,5 +0,0 @@
|
|||
pr: 115687
|
||||
summary: Add default ILM policies and switch to ILM for apm-data plugin
|
||||
area: Data streams
|
||||
type: feature
|
||||
issues: []
|
|
@ -1,6 +0,0 @@
|
|||
pr: 115744
|
||||
summary: Use `SearchStats` instead of field.isAggregatable in data node planning
|
||||
area: ES|QL
|
||||
type: bug
|
||||
issues:
|
||||
- 115737
|
|
@ -1,5 +0,0 @@
|
|||
pr: 115792
|
||||
summary: Add ES|QL `bit_length` function
|
||||
area: ES|QL
|
||||
type: enhancement
|
||||
issues: []
|
|
@ -1,6 +0,0 @@
|
|||
pr: 115797
|
||||
summary: Enable `_tier` based coordinator rewrites for all indices (not just mounted
|
||||
indices)
|
||||
area: Search
|
||||
type: enhancement
|
||||
issues: []
|
|
@ -1,5 +0,0 @@
|
|||
pr: 115807
|
||||
summary: "[Inference API] Improve chunked results error message"
|
||||
area: Machine Learning
|
||||
type: enhancement
|
||||
issues: []
|
|
@ -1,5 +0,0 @@
|
|||
pr: 115812
|
||||
summary: "Prohibit changes to index mode, source, and sort settings during resize"
|
||||
area: Logs
|
||||
type: bug
|
||||
issues: []
|
|
@ -1,6 +0,0 @@
|
|||
pr: 115814
|
||||
summary: "[ES|QL] Implicit casting string literal to intervals"
|
||||
area: ES|QL
|
||||
type: enhancement
|
||||
issues:
|
||||
- 115352
|
|
@ -1,5 +0,0 @@
|
|||
pr: 115858
|
||||
summary: "ESQL: optimise aggregations filtered by false/null into evals"
|
||||
area: ES|QL
|
||||
type: enhancement
|
||||
issues: []
|
|
@ -1,5 +0,0 @@
|
|||
pr: 115994
|
||||
summary: Add logsdb telemetry
|
||||
area: Logs
|
||||
type: enhancement
|
||||
issues: []
|
|
@ -1,6 +0,0 @@
|
|||
pr: 116021
|
||||
summary: Fields caps does not honour ignore_unavailable
|
||||
area: Search
|
||||
type: bug
|
||||
issues:
|
||||
- 107767
|
|
@ -1,5 +0,0 @@
|
|||
pr: 116082
|
||||
summary: Add support for bitwise inner-product in painless
|
||||
area: Vector Search
|
||||
type: enhancement
|
||||
issues: []
|
|
@ -1,5 +0,0 @@
|
|||
pr: 116128
|
||||
summary: Add num docs and size to logsdb telemetry
|
||||
area: Logs
|
||||
type: enhancement
|
||||
issues: []
|
|
@ -1,5 +0,0 @@
|
|||
pr: 116211
|
||||
summary: Use underlying `ByteBuf` `refCount` for `ReleasableBytesReference`
|
||||
area: Network
|
||||
type: bug
|
||||
issues: []
|
|
@ -1,5 +0,0 @@
|
|||
pr: 116325
|
||||
summary: Adjust analyze limit exception to be a `bad_request`
|
||||
area: Analysis
|
||||
type: bug
|
||||
issues: []
|
|
@ -1,5 +0,0 @@
|
|||
pr: 116346
|
||||
summary: "[ESQL] Fix Binary Comparisons on Date Nanos"
|
||||
area: ES|QL
|
||||
type: bug
|
||||
issues: []
|
|
@ -1,5 +0,0 @@
|
|||
pr: 116348
|
||||
summary: "ESQL: Honor skip_unavailable setting for nonmatching indices errors at planning time"
|
||||
area: ES|QL
|
||||
type: enhancement
|
||||
issues: [ 114531 ]
|
|
@ -1,5 +0,0 @@
|
|||
pr: 116431
|
||||
summary: Adds support for `input_type` field to Vertex inference service
|
||||
area: Machine Learning
|
||||
type: enhancement
|
||||
issues: []
|
|
@ -1,5 +0,0 @@
|
|||
pr: 116437
|
||||
summary: Ensure class resource stream is closed in `ResourceUtils`
|
||||
area: Indices APIs
|
||||
type: enhancement
|
||||
issues: []
|
|
@ -1,5 +0,0 @@
|
|||
pr: 116447
|
||||
summary: Adding a deprecation info API warning for data streams with old indices
|
||||
area: Data streams
|
||||
type: enhancement
|
||||
issues: []
|
|
@ -1,5 +0,0 @@
|
|||
pr: 116515
|
||||
summary: Esql/lookup join grammar
|
||||
area: ES|QL
|
||||
type: feature
|
||||
issues: []
|
|
@ -1,7 +0,0 @@
|
|||
pr: 116583
|
||||
summary: Fix NPE in `EnrichLookupService` on mixed clusters with <8.14 versions
|
||||
area: ES|QL
|
||||
type: bug
|
||||
issues:
|
||||
- 116529
|
||||
- 116544
|
|
@ -1,5 +0,0 @@
|
|||
pr: 116591
|
||||
summary: "Add support for `BYTE_LENGTH` scalar function"
|
||||
area: ES|QL
|
||||
type: feature
|
||||
issues: []
|
|
@ -1,6 +0,0 @@
|
|||
pr: 116656
|
||||
summary: _validate does not honour ignore_unavailable
|
||||
area: Search
|
||||
type: bug
|
||||
issues:
|
||||
- 116594
|
|
@ -1,6 +0,0 @@
|
|||
pr: 116664
|
||||
summary: Hides `hugging_face_elser` service from the `GET _inference/_services API`
|
||||
area: Machine Learning
|
||||
type: bug
|
||||
issues:
|
||||
- 116644
|
|
@ -1,10 +0,0 @@
|
|||
pr: 116689
|
||||
summary: Deprecate `_source.mode` in mappings
|
||||
area: Mapping
|
||||
type: deprecation
|
||||
issues: []
|
||||
deprecation:
|
||||
title: Deprecate `_source.mode` in mappings
|
||||
area: Mapping
|
||||
details: Configuring `_source.mode` in mappings is deprecated and will be removed in future versions. Use `index.mapping.source.mode` index setting instead.
|
||||
impact: Use `index.mapping.source.mode` index setting instead
|
|
@ -1,5 +0,0 @@
|
|||
pr: 116809
|
||||
summary: "Distinguish `LicensedFeature` by family field"
|
||||
area: License
|
||||
type: bug
|
||||
issues: []
|
|
@ -1,5 +0,0 @@
|
|||
pr: 116819
|
||||
summary: ESQL - Add match operator (:)
|
||||
area: Search
|
||||
type: feature
|
||||
issues: []
|
|
@ -1,5 +0,0 @@
|
|||
pr: 116931
|
||||
summary: Enable built-in Inference Endpoints and default for Semantic Text
|
||||
area: "Machine Learning"
|
||||
type: enhancement
|
||||
issues: []
|
|
@ -1,6 +0,0 @@
|
|||
pr: 116953
|
||||
summary: Fix false positive date detection with trailing dot
|
||||
area: Mapping
|
||||
type: bug
|
||||
issues:
|
||||
- 116946
|
|
@ -1,5 +0,0 @@
|
|||
pr: 116957
|
||||
summary: Propagate scoring function through random sampler
|
||||
area: Machine Learning
|
||||
type: bug
|
||||
issues: [ 110134 ]
|
|
@ -1,5 +0,0 @@
|
|||
pr: 116962
|
||||
summary: "Add special case for elastic reranker in inference API"
|
||||
area: Machine Learning
|
||||
type: enhancement
|
||||
issues: []
|
|
@ -1,6 +0,0 @@
|
|||
pr: 116980
|
||||
summary: "ESQL: Fix sorts containing `_source`"
|
||||
area: ES|QL
|
||||
type: bug
|
||||
issues:
|
||||
- 116659
|
5
docs/changelog/116996.yaml
Normal file
5
docs/changelog/116996.yaml
Normal file
|
@ -0,0 +1,5 @@
|
|||
pr: 116996
|
||||
summary: Initial work on `ReindexDatastreamIndexAction`
|
||||
area: Data streams
|
||||
type: enhancement
|
||||
issues: []
|
|
@ -1,5 +0,0 @@
|
|||
pr: 117080
|
||||
summary: Esql Enable Date Nanos (tech preview)
|
||||
area: ES|QL
|
||||
type: enhancement
|
||||
issues: []
|
|
@ -1,6 +0,0 @@
|
|||
pr: 117105
|
||||
summary: Fix long metric deserialize & add - auto-resize needs to be set manually
|
||||
area: CCS
|
||||
type: bug
|
||||
issues:
|
||||
- 116914
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue