/
build.gradle
126 lines (104 loc) · 3.24 KB
/
build.gradle
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
/*
Felling Build File
*/
// --- set up plugins and dependencies ---
buildscript {
repositories {
jcenter()
maven { url = "http://files.minecraftforge.net/maven" }
}
dependencies {
classpath 'net.minecraftforge.gradle:ForgeGradle:2.3-SNAPSHOT'
}
}
plugins {
id 'com.matthewprenger.cursegradle' version '1.0.9'
id "co.riiid.gradle" version "0.4.2"
}
apply plugin: 'net.minecraftforge.gradle.forge'
// --- define the properties file ---
ext.configFile = file "build.properties"
// now accessible as "config" or "project.config"
configFile.withReader {
def prop = new Properties()
prop.load(it)
project.ext.config = new ConfigSlurper().parse prop
}
// helper function to extract changelog data for a specific version
ext.getChangelog = { version ->
String changelog = file('./CHANGELOG.txt').text
def lines = []
def complete = null
changelog.eachLine { line ->
if (line =~ "version ${version}") {
complete = false
} else if (line =~ /version/) {
complete = true
} else if (!complete && line != "") {
lines.push(line.replaceFirst(" {4}", ""))
}
}
return lines.join("\n")
}
// --- version setup ---
version = "${config.mod_version}-${config.compatible_versions}"
group = "arlyon.felling"
archivesBaseName = "felling"
sourceCompatibility = targetCompatibility = "1.8"
compileJava {
sourceCompatibility = targetCompatibility = "1.8"
}
// --- minecraft config ---
minecraft {
version = "${config.minecraft_version}-${config.forge_version}"
runDir = "run"
mappings = config.mappings_version
}
// --- curseforge config ---
curseforge {
apiKey = System.env.CURSE_API_KEY
project {
id = config.projectId
changelog = getChangelog(config.mod_version)
releaseType = 'release'
addGameVersion '1.8'
addGameVersion '1.12'
addGameVersion '1.12.1'
addGameVersion '1.12.2'
mainArtifact(jar) {
displayName = "Felling Version ${config.mod_version} for Minecraft ${config.compatible_versions}"
}
}
}
// --- github release ---
github {
owner = 'arlyon'
repo = 'felling'
token = System.env.GITHUB_TOKEN
tagName = "${config.mod_version}/${config.compatible_versions}"
targetCommitish = '1.12.x'
name = "Felling Version ${config.mod_version} for Minecraft ${config.compatible_versions}"
body = getChangelog(config.mod_version)
assets = [
"build/libs/felling-${config.mod_version}-${config.compatible_versions}.jar"
]
}
// --- dependencies ---
dependencies {
testCompile group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: '5.1.0-RC1'
}
// --- resources ---
processResources {
// this will ensure that this task is redone when the versions change.
inputs.property "version", project.version
inputs.property "mcversion", project.minecraft.version
// replace stuff in mcmod.info, nothing else
from(sourceSets.main.resources.srcDirs) {
include 'mcmod.info'
expand 'version':project.version, 'mcversion':project.minecraft.version
}
// copy everything else except the mcmod.info
from(sourceSets.main.resources.srcDirs) {
exclude 'mcmod.info'
}
}