@@ -226,6 +226,46 @@ task compressJson(dependsOn: extractAnnotationsJar) {
226
226
227
227
assemble. dependsOn compressJson
228
228
229
+ task checkRelease (dependsOn : extractAnnotationsJar) {
230
+ group " upload"
231
+ description " Verifies that everything is ready for a release"
232
+
233
+ inputs. property " version" , mod_version
234
+ inputs. file(" src/main/resources/assets/computercraft/lua/rom/help/changelog.txt" )
235
+ inputs. file(" src/main/resources/assets/computercraft/lua/rom/help/whatsnew.txt" )
236
+
237
+ doLast {
238
+ def ok = true
239
+
240
+ // Check we're targetting the current version
241
+ def whatsnew = new File (" src/main/resources/assets/computercraft/lua/rom/help/whatsnew.txt" ). readLines()
242
+ if (whatsnew[0 ] != " New features in CC: Tweaked $mod_version " ) {
243
+ ok = false
244
+ project. logger. error(" Expected `whatsnew.txt' to target $mod_version . " )
245
+ }
246
+
247
+ // Check "read more" exists and trim it
248
+ def idx = whatsnew. findIndexOf { it == ' Type "help changelog" to see the full version history.' }
249
+ if (idx == -1 ) {
250
+ ok = false
251
+ project. logger. error(" Must mention the changelog in whatsnew.txt" )
252
+ } else {
253
+ whatsnew = whatsnew. getAt(0 .. < idx)
254
+ }
255
+
256
+ // Check whatsnew and changelog match.
257
+ def versionChangelog = " # " + whatsnew. join(" \n " )
258
+ def changelog = new File (" src/main/resources/assets/computercraft/lua/rom/help/changelog.txt" ). getText()
259
+ if (! changelog. startsWith(versionChangelog)) {
260
+ ok = false
261
+ project. logger. error(" whatsnew and changelog are not in sync" )
262
+ }
263
+
264
+ if (! ok) throw new IllegalStateException (" Could not check release" )
265
+ }
266
+ }
267
+
268
+
229
269
curseforge {
230
270
apiKey = project. hasProperty(' curseForgeApiKey' ) ? project. curseForgeApiKey : ' '
231
271
project {
@@ -296,17 +336,23 @@ githubRelease {
296
336
token project. hasProperty(' githubApiKey' ) ? project. githubApiKey : ' '
297
337
owner ' SquidDev-CC'
298
338
repo ' CC-Tweaked'
299
- targetCommitish (mc_version == " 1.12.2 " ? " master " : mc_version)
339
+ targetCommitish { Grgit . open( dir : ' . ' ) . branch . current() }
300
340
301
341
tagName " v${ mc_version} -${ mod_version} "
302
342
releaseName " [${ mc_version} ] ${ mod_version} "
303
- body ' '
343
+ body {
344
+ " ##" + new File (" src/main/resources/assets/computercraft/lua/rom/help/whatsnew.txt" )
345
+ .readLines()
346
+ .takeWhile { it != ' Type "help changelog" to see the full version history.' }
347
+ .join(" \n " ). trim()
348
+ }
304
349
prerelease false
305
350
}
306
351
307
352
task uploadAll (dependsOn : [uploadArchives, " curseforge" , " githubRelease" ]) {
308
353
group " upload"
309
354
description " Uploads to all repositories (Maven, Curse, GitHub release)"
355
+ dependsOn checkRelease
310
356
}
311
357
312
358
test {
0 commit comments