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
Binary file removed .DS_Store
Binary file not shown.
1 change: 1 addition & 0 deletions .buildkite/dra-workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ steps:
timeout_in_minutes: 60
env:
USE_DRA_CREDENTIALS: true
USE_MAVEN_GPG: true
agents:
provider: gcp
image: family/elasticsearch-ubuntu-2004
Expand Down
Empty file modified .buildkite/dra.sh
100644 → 100755
Empty file.
8 changes: 8 additions & 0 deletions .buildkite/hooks/pre-command
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,14 @@ export JAVA13_HOME
JAVA14_HOME="$HOME/.java/openjdk14"
export JAVA14_HOME

if [[ "${USE_MAVEN_GPG:-}" == "true" ]]; then
vault_path="kv/ci-shared/release-eng/team-release-secrets/es-delivery/gpg"
ORG_GRADLE_PROJECT_signingKey=$(vault kv get --field="private_key" $vault_path)
ORG_GRADLE_PROJECT_signingPassword=$(vault kv get --field="passphase" $vault_path)
export ORG_GRADLE_PROJECT_signingKey
export ORG_GRADLE_PROJECT_signingPassword
fi

if [[ "$USE_DRA_CREDENTIALS" == "true" ]]; then
DRA_VAULT_ROLE_ID_SECRET=$(vault read -field=role-id secret/ci/elastic-elasticsearch-hadoop/legacy-vault-credentials)
export DRA_VAULT_ROLE_ID_SECRET
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,37 +19,33 @@

package org.elasticsearch.hadoop.gradle

import org.elasticsearch.gradle.testclusters.StandaloneRestIntegTestTask
import org.elasticsearch.hadoop.gradle.buildtools.DependenciesInfoPlugin
import org.elasticsearch.hadoop.gradle.buildtools.DependencyLicensesTask
import org.elasticsearch.hadoop.gradle.buildtools.LicenseHeadersTask
import org.elasticsearch.gradle.testclusters.StandaloneRestIntegTestTask
import org.elasticsearch.hadoop.gradle.buildtools.UpdateShasTask
import org.elasticsearch.hadoop.gradle.buildtools.info.BuildParams
import org.elasticsearch.hadoop.gradle.scala.SparkVariantPlugin
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.api.Task
import org.gradle.api.XmlProvider
import org.gradle.api.artifacts.Configuration
import org.gradle.api.artifacts.Dependency
import org.gradle.api.artifacts.DependencyResolveDetails
import org.gradle.api.artifacts.ModuleDependency
import org.gradle.api.artifacts.ProjectDependency
import org.gradle.api.artifacts.ResolutionStrategy
import org.gradle.api.artifacts.*

import org.gradle.api.attributes.LibraryElements
import org.gradle.api.attributes.Usage
import org.gradle.api.component.SoftwareComponentFactory
import org.gradle.api.file.CopySpec
import org.gradle.api.file.FileCollection
import org.gradle.api.java.archives.Manifest
import org.gradle.api.plugins.BasePluginExtension
import org.gradle.api.plugins.JavaLibraryPlugin
import org.gradle.api.plugins.JavaPlugin
import org.gradle.api.plugins.scala.ScalaPlugin
import org.gradle.api.provider.Provider
import org.gradle.api.publish.maven.MavenPom
import org.gradle.api.publish.maven.MavenPublication
import org.gradle.api.publish.maven.tasks.GenerateMavenPom
import org.gradle.api.publish.maven.tasks.PublishToMavenRepository
import org.gradle.api.tasks.Copy
import org.gradle.api.tasks.SourceSet
import org.gradle.api.tasks.SourceSetContainer
Expand All @@ -62,25 +58,14 @@ import org.gradle.external.javadoc.JavadocOutputLevel
import org.gradle.external.javadoc.MinimalJavadocOptions
import org.gradle.plugins.ide.eclipse.EclipsePlugin
import org.gradle.plugins.ide.idea.IdeaPlugin
import org.gradle.api.plugins.BasePluginExtension

import org.w3c.dom.NodeList

import org.gradle.api.component.ConfigurationVariantDetails
import javax.inject.Inject

import static org.elasticsearch.hadoop.gradle.scala.SparkVariantPlugin.SparkVariantPluginExtension
import static org.elasticsearch.hadoop.gradle.scala.SparkVariantPlugin.SparkVariant
import org.gradle.api.artifacts.ResolvableDependencies;
import org.gradle.api.artifacts.component.ComponentIdentifier;
import org.gradle.api.artifacts.result.ResolvedComponentResult;
import org.gradle.api.artifacts.result.ResolvedDependencyResult;
import org.gradle.api.file.FileCollection;
import org.gradle.api.specs.AndSpec;
import org.gradle.api.specs.Spec;
import org.gradle.api.artifacts.component.ModuleComponentIdentifier;
import java.util.stream.Collectors;

class BuildPlugin implements Plugin<Project> {
import static org.elasticsearch.hadoop.gradle.scala.SparkVariantPlugin.SparkVariantPluginExtension

class BuildPlugin implements Plugin<Project> {

public static final String SHARED_TEST_IMPLEMENTATION_CONFIGURATION_NAME = "sharedTestImplementation"
public static final String SHARED_ITEST_IMPLEMENTATION_CONFIGURATION_NAME = "sharedItestImplementation"
Expand Down Expand Up @@ -568,6 +553,7 @@ class BuildPlugin implements Plugin<Project> {
private void configureMaven(Project project) {
project.getPluginManager().apply("maven-publish")
project.getPluginManager().apply("com.gradleup.nmcp")
project.getPluginManager().apply("signing")

// Configure Maven publication
project.publishing {
Expand All @@ -585,6 +571,12 @@ class BuildPlugin implements Plugin<Project> {
}
}

Provider<String> signingKey = project.getProviders().gradleProperty("signingKey");
if (signingKey.isPresent()) {
project.signing.useInMemoryPgpKeys(signingKey.get(), project.getProviders().gradleProperty("signingPassword").get());
project.signing.sign(project.publishing.publications.main);
}

// Configure Maven Pom
configurePom(project, project.publishing.publications.main)

Expand Down Expand Up @@ -634,16 +626,20 @@ class BuildPlugin implements Plugin<Project> {
project.components.add(variantComponent)
// Register the variant's outgoing configurations for publication
variantComponent.addVariantsFromConfiguration(project.configurations.getByName(variant.configuration("apiElements"))) {
filterNonJarArtifacts(it)
it.mapToMavenScope("compile")
}
variantComponent.addVariantsFromConfiguration(project.configurations.getByName(variant.configuration("runtimeElements"))) {
filterNonJarArtifacts(it)
it.mapToMavenScope("runtime")
}
variantComponent.addVariantsFromConfiguration(project.configurations.getByName(variant.configuration("javadocElements"))) {
filterNonJarArtifacts(it)
it.mapToMavenScope("runtime")
}
variantComponent.addVariantsFromConfiguration(project.configurations.getByName(variant.configuration("sourcesElements"))) {
it.mapToMavenScope("runtime")
filterNonJarArtifacts(it)
}

// Create a publication for this adhoc component to create pom generation and publishing tasks
Expand All @@ -657,6 +653,11 @@ class BuildPlugin implements Plugin<Project> {
updateVariantArtifactId(project, variantPublication, variant)
}
}
if (signingKey.isPresent()) {
project.signing {
sign(project.publishing.publications.getByName(variant.getName()));
}
}
}
}

Expand All @@ -666,6 +667,13 @@ class BuildPlugin implements Plugin<Project> {
}
}

private void filterNonJarArtifacts(ConfigurationVariantDetails details) {
def attribute = details.getConfigurationVariant().getAttributes().getAttribute(LibraryElements.LIBRARY_ELEMENTS_ATTRIBUTE)
if (attribute != null && attribute.name != LibraryElements.JAR) {
details.skip()
}
}

private static void configurePom(Project project, MavenPublication publication) {
// add all items necessary for publication
Provider<String> descriptionProvider = project.provider({ project.getDescription() })
Expand Down Expand Up @@ -830,7 +838,7 @@ class BuildPlugin implements Plugin<Project> {
precommitTasks.add(licenseHeaders)

if (!project.path.startsWith(":qa")) {
TaskProvider<DependencyLicensesTask> dependencyLicenses = project.tasks.register('dependencyLicenses', DependencyLicensesTask.class) {
TaskProvider<DependencyLicensesTask> dependencyLicenses = project.tasks.register('dependencyLicenses', DependencyLicensesTask.class) {
dependencies = project.configurations.runtimeClasspath
mapping from: /hadoop-.*/, to: 'hadoop'
mapping from: /hive-.*/, to: 'hive'
Expand Down
4 changes: 4 additions & 0 deletions dist/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -214,6 +214,10 @@ tasks.named('publishMainPublicationToNmcpMainRepository') {
mustRunAfter 'copyPoms'
}

tasks.withType(Sign.class).configureEach {
mustRunAfter 'copyPoms'
}

tasks.named('distribution').configure {
dependsOn 'copyPoms'
}
Binary file removed spark/.DS_Store
Binary file not shown.