73 lines
2.9 KiB
Groovy
73 lines
2.9 KiB
Groovy
/*
|
|
* Licensed to Elasticsearch under one or more contributor
|
|
* license agreements. See the NOTICE file distributed with
|
|
* this work for additional information regarding copyright
|
|
* ownership. Elasticsearch licenses this file to you under
|
|
* the Apache License, Version 2.0 (the "License"); you may
|
|
* not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing,
|
|
* software distributed under the License is distributed on an
|
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
* KIND, either express or implied. See the License for the
|
|
* specific language governing permissions and limitations
|
|
* under the License.
|
|
*/
|
|
|
|
import org.elasticsearch.gradle.plugin.PluginBuildPlugin
|
|
import org.apache.tools.ant.taskdefs.condition.Os
|
|
|
|
task buildZip(type: Zip) {
|
|
dependsOn createLogDir, createPluginsDir
|
|
baseName = 'elasticsearch'
|
|
with archivesFiles
|
|
}
|
|
|
|
artifacts {
|
|
'default' buildZip
|
|
archives buildZip
|
|
}
|
|
|
|
publishing {
|
|
publications {
|
|
nebula {
|
|
artifactId 'elasticsearch'
|
|
artifact buildZip
|
|
}
|
|
/* HUGE HACK: the underlying maven publication library refuses to deploy any attached artifacts
|
|
* when the packaging type is set to 'pom'. But Sonatype's OSS repositories require source files
|
|
* for artifacts that are of type 'zip'. We already publish the source and javadoc for Elasticsearch
|
|
* under the various other subprojects. So here we create another publication using the same
|
|
* name that has the "real" pom, and rely on the fact that gradle will execute the publish tasks
|
|
* in alphabetical order. This lets us publish the zip file and even though the pom says the
|
|
* type is 'pom' instead of 'zip'. We cannot setup a dependency between the tasks because the
|
|
* publishing tasks are created *extremely* late in the configuration phase, so that we cannot get
|
|
* ahold of the actual task. Furthermore, this entire hack only exists so we can make publishing to
|
|
* maven local work, since we publish to maven central externally. */
|
|
nebulaRealPom(MavenPublication) {
|
|
artifactId 'elasticsearch'
|
|
pom.packaging = 'pom'
|
|
pom.withXml { XmlProvider xml ->
|
|
Node root = xml.asNode()
|
|
root.appendNode('name', 'Elasticsearch')
|
|
root.appendNode('description', 'A Distributed RESTful Search Engine')
|
|
root.appendNode('url', PluginBuildPlugin.urlFromOrigin(project.scminfo.origin))
|
|
Node scmNode = root.appendNode('scm')
|
|
scmNode.appendNode('url', project.scminfo.origin)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
integTestRunner {
|
|
if (Os.isFamily(Os.FAMILY_WINDOWS) && System.getProperty('tests.timeoutSuite') == null) {
|
|
// override the suite timeout to 30 mins for windows, because it has the most inefficient filesystem known to man
|
|
systemProperty 'tests.timeoutSuite', '1800000!'
|
|
}
|
|
}
|
|
|
|
integTest.dependsOn buildZip
|