mirror of
https://github.com/elastic/elasticsearch.git
synced 2025-06-28 09:28:55 -04:00
Improve efficiency of incremental builds when building bwc distributions (#118713)
This commit is contained in:
parent
6e2c614af3
commit
1f4fef13f4
1 changed files with 24 additions and 9 deletions
|
@ -17,12 +17,12 @@ import org.gradle.api.InvalidUserDataException;
|
|||
import org.gradle.api.Plugin;
|
||||
import org.gradle.api.Project;
|
||||
import org.gradle.api.Task;
|
||||
import org.gradle.api.file.FileSystemOperations;
|
||||
import org.gradle.api.file.ProjectLayout;
|
||||
import org.gradle.api.model.ObjectFactory;
|
||||
import org.gradle.api.plugins.JvmToolchainsPlugin;
|
||||
import org.gradle.api.provider.Provider;
|
||||
import org.gradle.api.provider.ProviderFactory;
|
||||
import org.gradle.api.tasks.Copy;
|
||||
import org.gradle.api.tasks.PathSensitivity;
|
||||
import org.gradle.api.tasks.TaskProvider;
|
||||
import org.gradle.jvm.toolchain.JavaToolchainService;
|
||||
|
@ -54,11 +54,17 @@ public class InternalDistributionBwcSetupPlugin implements Plugin<Project> {
|
|||
private final ObjectFactory objectFactory;
|
||||
private ProviderFactory providerFactory;
|
||||
private JavaToolchainService toolChainService;
|
||||
private FileSystemOperations fileSystemOperations;
|
||||
|
||||
@Inject
|
||||
public InternalDistributionBwcSetupPlugin(ObjectFactory objectFactory, ProviderFactory providerFactory) {
|
||||
public InternalDistributionBwcSetupPlugin(
|
||||
ObjectFactory objectFactory,
|
||||
ProviderFactory providerFactory,
|
||||
FileSystemOperations fileSystemOperations
|
||||
) {
|
||||
this.objectFactory = objectFactory;
|
||||
this.providerFactory = providerFactory;
|
||||
this.fileSystemOperations = fileSystemOperations;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -76,7 +82,8 @@ public class InternalDistributionBwcSetupPlugin implements Plugin<Project> {
|
|||
providerFactory,
|
||||
objectFactory,
|
||||
toolChainService,
|
||||
isCi
|
||||
isCi,
|
||||
fileSystemOperations
|
||||
);
|
||||
});
|
||||
}
|
||||
|
@ -88,7 +95,8 @@ public class InternalDistributionBwcSetupPlugin implements Plugin<Project> {
|
|||
ProviderFactory providerFactory,
|
||||
ObjectFactory objectFactory,
|
||||
JavaToolchainService toolChainService,
|
||||
Boolean isCi
|
||||
Boolean isCi,
|
||||
FileSystemOperations fileSystemOperations
|
||||
) {
|
||||
ProjectLayout layout = project.getLayout();
|
||||
Provider<BwcVersions.UnreleasedVersionInfo> versionInfoProvider = providerFactory.provider(() -> versionInfo);
|
||||
|
@ -120,11 +128,18 @@ public class InternalDistributionBwcSetupPlugin implements Plugin<Project> {
|
|||
List<DistributionProject> distributionProjects = resolveArchiveProjects(checkoutDir.get(), bwcVersion.get());
|
||||
|
||||
// Setup gradle user home directory
|
||||
project.getTasks().register("setupGradleUserHome", Copy.class, copy -> {
|
||||
copy.into(project.getGradle().getGradleUserHomeDir().getAbsolutePath() + "-" + project.getName());
|
||||
copy.from(project.getGradle().getGradleUserHomeDir().getAbsolutePath(), copySpec -> {
|
||||
copySpec.include("gradle.properties");
|
||||
copySpec.include("init.d/*");
|
||||
// We don't use a normal `Copy` task here as snapshotting the entire gradle user home is very expensive. This task is cheap, so
|
||||
// up-to-date checking doesn't buy us much
|
||||
project.getTasks().register("setupGradleUserHome", task -> {
|
||||
task.doLast(t -> {
|
||||
fileSystemOperations.copy(copy -> {
|
||||
String gradleUserHome = project.getGradle().getGradleUserHomeDir().getAbsolutePath();
|
||||
copy.into(gradleUserHome + "-" + project.getName());
|
||||
copy.from(gradleUserHome, copySpec -> {
|
||||
copySpec.include("gradle.properties");
|
||||
copySpec.include("init.d/*");
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue