-
Notifications
You must be signed in to change notification settings - Fork 24.4k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Build: Consolidate archives and packages configuration (#28760)
This commit moves the distribution specific tasks into the respective archives and packages builds. The collocation of common and distribution specific tasks make it much easier to reason about what is expected in a particular distribution.
- Loading branch information
Showing
37 changed files
with
467 additions
and
612 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,72 +1,2 @@ | ||
/* | ||
* 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 | ||
// This file is intentionally blank. All configuration of the | ||
// distribution is done in the parent project. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,33 +1,2 @@ | ||
/* | ||
* 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. | ||
*/ | ||
|
||
task buildTar(type: Tar) { | ||
dependsOn createLogDir, createPluginsDir | ||
baseName = 'elasticsearch' | ||
extension = 'tar.gz' | ||
with archivesFiles | ||
compression = Compression.GZIP | ||
dirMode 0755 | ||
fileMode 0644 | ||
} | ||
|
||
artifacts { | ||
'default' buildTar | ||
} | ||
|
||
// This file is intentionally blank. All configuration of the | ||
// distribution is done in the parent project. |
Oops, something went wrong.