FastAsyncWorldedit/build.gradle
2017-03-05 15:34:26 +11:00

95 lines
2.9 KiB
Groovy

buildscript {
repositories {
mavenCentral()
maven { url = "https://oss.sonatype.org/content/repositories/snapshots/" }
jcenter()
}
dependencies {
classpath 'com.github.jengelman.gradle.plugins:shadow:1.2.3'
classpath 'org.ajoberstar:grgit:1.7.0'
}
}
task setupCIWorkspace {
// do nothing, stub method
}
apply plugin: 'java'
clean { delete "target" }
group = 'com.boydti.fawe'
def revision = ""
def buildNumber = ""
def semver = ""
def date = ""
ext {
git = org.ajoberstar.grgit.Grgit.open(file(".git"))
date = git.head().date.format("yy.MM.dd")
revision = "-${git.head().abbreviatedId}"
parents = git.head().parentIds;
index = -79; // Offset to mach CI
int major, minor, patch;
major = minor = patch = 0;
for (;parents != null && !parents.isEmpty();index++) {
int majorCount, minorCount, patchCount;
patchCount = minor == 0 && major == 0 ? 1 : 0;
commit = git.getResolve().toCommit(parents.get(0));
for (String line : commit.fullMessage.tokenize("\n")) {
switch (line.replaceAll("- ", "").split(" ")[0].toLowerCase()) {
case "minor":
case "added":
case "add":
case "change":
case "changed":
case "changes":
if (major == 0) {minorCount = 1; patchCount = 0;}
break;
case "refactor":
case "remove":
case "major":
patchCount = minorCount = 0;
majorCount = 1;
break;
}
}
major += majorCount;
minor += minorCount;
patch += patchCount;
parents = commit.getParentIds()
}
buildNumber = "-${index}"
semver = "-${major}.${minor}.${patch}"
}
version = date + revision + buildNumber + semver
if ( project.hasProperty("lzNoVersion") ) { // gradle build -PlzNoVersion
version = "unknown";
}
description = """FastAsyncWorldEdit"""
subprojects {
apply plugin: 'java'
apply plugin: 'maven'
apply plugin: 'eclipse'
apply plugin: 'idea'
sourceCompatibility = 1.8
targetCompatibility = 1.8
repositories {
mavenCentral()
maven { url = "https://mvnrepository.com/artifact/"}
maven {url "http://ci.emc.gs/nexus/content/groups/aikar/" }
maven {url "http://ci.regularbox.com/plugin/repository/everything/"}
maven {url "http://empcraft.com/maven2"}
maven {url "https://hub.spigotmc.org/nexus/content/groups/public/"}
maven {url "http://maven.sk89q.com/repo/"}
maven {url "http://nexus.hc.to/content/repositories/pub_releases"}
maven {url "http://repo.maven.apache.org/maven2"}
maven {url "http://ci.frostcast.net/plugin/repository/everything"}
maven {url "http://maven.sk89q.com/artifactory/repo/"}
maven {url "http://repo.spongepowered.org/maven"}
}
}