aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKonstantin Boudnik <cos@apache.org>2016-01-24 12:01:06 -0800
committerKonstantin Boudnik <cos@apache.org>2016-01-27 13:12:33 -0800
commit649b4518bcdba507c19575df5c7877c094854c37 (patch)
tree99d404f9ab53c7375a205f51a858e8a7a2faf488
parentc4ed391a834af4414d6e3a5d9e71421c08fc137f (diff)
downloadbigtop-odpi-649b4518bcdba507c19575df5c7877c094854c37.tar.gz
BIGTOP-2278. Wrap separate maven release steps into convenient gradle task
-rw-r--r--build.gradle3
-rw-r--r--release.gradle70
2 files changed, 73 insertions, 0 deletions
diff --git a/build.gradle b/build.gradle
index d17f98dc..a1ff5794 100644
--- a/build.gradle
+++ b/build.gradle
@@ -203,6 +203,9 @@ def DOCKERBUILD_GROUP = 'docker build'
// All packaging logic is separated into its own build module
apply from: 'packages.gradle'
+// Wrapping all release logic to simplify the release process
+apply from: 'release.gradle'
+
task toolchain(type:Exec,
description: 'Setup dev. env via toolchain; Requires: Puppet, sudo',
group: DEVENV_GROUP) {
diff --git a/release.gradle b/release.gradle
new file mode 100644
index 00000000..7d1e5f5c
--- /dev/null
+++ b/release.gradle
@@ -0,0 +1,70 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF 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.
+ *
+ */
+
+apply plugin: 'groovy'
+
+def final mvnProfile="release"
+task dosite (type: Exec) << {
+ workingDir "."
+ commandLine 'mvn clean site'.split(" ")
+}
+
+task doassembly (type: Exec) << {
+ workingDir "."
+ commandLine 'mvn -P$mvnProfile package assembly:assembly'.split(" ")
+}
+
+task deployTop (type: Exec) << {
+ workingDir "."
+ commandLine 'mvn -P$mvnProfile deploy -f pom.xml'.split(" ")
+}
+task deployITest (type: Exec) << {
+ workingDir "."
+ commandLine 'mvn -P$mvnProfile deploy -f bigtop-test-framework/pom.xml'.split(" ")
+}
+task deployTestArtifacts (type: Exec) << {
+ workingDir "."
+ commandLine 'mvn -P$mvnProfile deploy -f bigtop-tests/test-artifacts/pom.xml'.split(" ")
+}
+task deployTestExecutors (type: Exec) << {
+ workingDir "."
+ commandLine 'mvn -P$mvnProfile deploy -f bigtop-tests/test-execution/pom.xml'.split(" ")
+}
+task deployAll (type: Exec,
+ dependsOn: [deployTestExecutors, deployTestArtifacts,
+ deployITest, deployTop]) << {
+ workingDir "."
+ commandLine 'mvn deploy -Prelease'.split(" ")
+}
+
+task dorelease(description: 'Convenient wrapper for existing release tasks',
+ dependsOn: [doassembly, dosite, deployAll]) << {
+}
+
+task setversion << {
+ assert project.hasProperty('nextversion')
+
+ FileTree fTree = fileTree(dir: projectDir, exclude: ['dl', 'build'],
+ include: ['**/pom.xml', '*.bom', 'build.gradle'])
+ fTree.each() { pomFile ->
+ println "Fixing $pomFile"
+ pomFile.write(pomFile.text.replaceAll(version, nextversion))
+ }
+ println "Done! Please inspect changes to make sure everything is in order."
+} \ No newline at end of file