From f7d6ad62b54db829e278f7bf8d46cc4a1f2edab1 Mon Sep 17 00:00:00 2001
From: Nikolaus Krismer <nikolaus.krismer@uibk.ac.at>
Date: Mon, 31 Aug 2015 16:48:27 +0200
Subject: [PATCH] moving gradle changelog tasks to separate buildscript

---
 CHANGELOG.md | 13 +++++------
 build.gradle | 63 ++++------------------------------------------------
 2 files changed, 10 insertions(+), 66 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 7014d8a..5fa504d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,7 +1,7 @@
 Upcoming version:
-------------------
+-----------------
+  - moving gradle changelog tasks to separate buildscript (Nikolaus Krismer)
   - fixing problems in changelog generation (again) (Nikolaus Krismer)
-  - Merge branch 'master' of git@dbis-git.uibk.ac.at:krismer/isochrone-vm.git (Nikolaus Krismer)
   - calling grgit add before grgit commit (by now push is empty) (Nikolaus Krismer)
   - not commiting changelogs in jenkins without changes :-) (Nikolaus Krismer)
   - improving gradle changelog mechanism (excluding jenkins commits) (Nikolaus Krismer)
@@ -14,7 +14,7 @@ Upcoming version:
   - adding removal of CHANGELOG to clean task (Nikolaus Krismer)
 
 Version v0.5.1:
-----------------
+---------------
   - removed hard-coded version from gradle (is set using scmversion plugin) (Nikolaus Krismer)
   - added density generation for synthethic networks (Nikolaus Krismer)
   - removed pgRouting / osm2pgrouting from files (not needed and never used) (Nikolaus Krismer)
@@ -34,12 +34,11 @@ Version v0.5.1:
   - increased version number (Nikolaus Krismer)
 
 Version v0.5.0:
-----------------
+---------------
   - increased version number (Nikolaus Krismer)
   - geoserver version update (Nikolaus Krismer)
   - always adding pg_procedures to created database (not only when postgis is installed) (Nikolaus Krismer)
   - added installation of phpLiteAdmin and spatialite (Nikolaus Krismer)
-  - Merge branch 'master' of git@dbis-git.uibk.ac.at:krismer/isochrone-vm.git (Nikolaus Krismer)
   - source profile in init script so it works without problems in centos 6 with the service command (Nikolaus Krismer)
   - Fixed tomcat startup message (root)
   - creating directories needed by script at the beginning (Nikolaus Krismer)
@@ -55,7 +54,7 @@ Version v0.5.0:
   - increased version number (Nikolaus Krismer)
 
 Version v0.4.1:
-----------------
+---------------
   - updating to java8u40 (Nikolaus Krismer)
   - removed support for fedora 20 some version updates added isochrone-tool artifact download  -> generating synthetic networks in datbase now (Nikolaus Krismer)
   - added documentation about VT-x/AMD-V in virtualbox (Nikolaus Krismer)
@@ -66,7 +65,7 @@ Version v0.4.1:
   - Increased version number (Nikolaus Krismer)
 
 Version v0.4.0:
-----------------
+---------------
   - version upgrade to 0.4.0-SNAPSHOT (renaming 0.3.7-SNAPSHOT to 0.4.0-SNAPSHOT) (Nikolaus Krismer)
   - update to latest apache-tomcat (version 8.0.18) (Nikolaus Krismer)
   - disabling port auto_correction (causes problems for test cases) (Nikolaus Krismer)
diff --git a/build.gradle b/build.gradle
index 904a9c6..6714901 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,15 +1,17 @@
 // Plugin declaration
 
+buildscript {
+	apply from: 'http://dbis-informatik.uibk.ac.at/static/ma/niko/gradle/changelog.gradle'
+}
+
 plugins {
 	id 'com.bmuschko.vagrant' version '2.0'
 	id 'com.kageiit.url-cache' version '1.0.0'
 	id 'de.ploing.scmversion' version '0.6.3'
-	id 'org.ajoberstar.grgit' version '1.2.0'
 }
 
 apply plugin: 'eclipse'
 
-import org.ajoberstar.grgit.*
 import org.apache.tools.ant.filters.FixCrLfFilter
 import org.apache.tools.ant.filters.ReplaceTokens
 
@@ -97,63 +99,6 @@ vagrantDestroy.doFirst {
 
 // Custom tasks
 
-task changelog << {
-	def grgit = Grgit.open(project.file('.'))
-	def fileChangelog = new File('CHANGELOG.md')
-	def isRelease = !project.version.endsWith('-SNAPSHOT')
-	def lastCommitByCI = false
-	def msgCommit = isRelease ? 'Releasing new version' : 'Updating changelog'
-	def nameUserCI = 'Jenkins'
-
-	// if we build a release we do not need to look at the HEAD (only until the tag which is built)
-	def tags = (isRelease) ? [] : ["HEAD"]
-	grgit.tag.list().reverse().each{ t ->
-		tags += t.getName()
-	}
-	fileChangelog.delete()
-
-	def builder
-	def commits
-	def numTags = tags.size()
-	for (int i = 0; i < numTags; ++i) {
-		builder = new StringBuilder()
-		builder.append("Version ${tags[i]}:\n".replaceAll('Version HEAD', 'Upcoming version'))
-		def tagLength = builder.size()
-		for (int j = 0; j < tagLength; ++j) {
-			builder.append('-')
-		}
-		builder.append('\n')
-
-		if (tags[i+1] == null) {
-			commits = grgit.log(includes: [tags[i]])
-		} else {
-			commits = grgit.log {
-				range tags[i+1], tags[i];
-			}
-		}
-
-		if (i == 0 && commits != null && commits[0] != null && nameUserCI.equalsIgnoreCase(commits[0].committer.name)) {
-			lastCommitByCI = true
-		}
-
-		commits.grep { commit -> 
-			!nameUserCI.equalsIgnoreCase(commit.committer.name)
-		}.inject(builder) { bldr, commit ->
-			bldr.append('  - ')
-			bldr.append(commit.shortMessage)
-			bldr.append(' (' + commit.committer.name + ')')
-			bldr.append('\n')
-		}
-		builder.append('\n')
-	    fileChangelog << builder.toString()
-	}
-
-	if (!lastCommitByCI) {
-	 	grgit.add(patterns: [fileChangelog.name])
-		grgit.commit(message: msgCommit, amend: false)
-	}
-}
-
 task vagrantExport(type: Zip) {
 	description = 'Builds an archive file that contains the files, needed to create the vagrant box'
 
-- 
GitLab