diff options
-rw-r--r-- | build.gradle | 3 | ||||
-rw-r--r-- | release.gradle | 70 |
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 |