2017-05-01 14:32:39 +01:00
buildscript {
repositories {
2019-04-02 13:27:27 +01:00
mavenCentral ( )
2017-05-01 14:32:39 +01:00
maven {
name = "forge"
2021-04-23 22:26:00 +01:00
url = "https://maven.minecraftforge.net"
2017-05-01 14:32:39 +01:00
}
}
dependencies {
2019-02-14 10:53:18 +00:00
classpath 'com.google.code.gson:gson:2.8.1'
2021-06-09 18:00:20 +01:00
classpath 'net.minecraftforge.gradle:ForgeGradle:5.0.6'
2017-05-01 14:32:39 +01:00
}
}
2017-12-01 20:05:26 +00:00
plugins {
2019-06-08 00:28:03 +01:00
id "checkstyle"
2020-05-11 15:41:39 +01:00
id "jacoco"
2021-04-24 11:26:04 +01:00
id "maven-publish"
2021-06-09 18:00:20 +01:00
id "com.github.hierynomus.license" version "0.16.1"
2021-02-13 12:39:52 +00:00
id "com.matthewprenger.cursegradle" version "1.4.0"
id "com.github.breadmoirai.github-release" version "2.2.12"
2021-01-09 19:50:27 +00:00
id "org.jetbrains.kotlin.jvm" version "1.3.72"
2021-06-09 18:00:20 +01:00
id "com.modrinth.minotaur" version "1.2.1"
2017-12-01 20:05:26 +00:00
}
2019-04-02 13:27:27 +01:00
apply plugin: 'net.minecraftforge.gradle'
2017-05-01 14:32:39 +01:00
2019-03-19 11:47:12 +00:00
version = mod_version
2019-02-19 14:49:13 +00:00
2017-11-15 16:25:10 +00:00
group = "org.squiddev"
2019-03-19 11:47:12 +00:00
archivesBaseName = "cc-tweaked-${mc_version}"
2017-05-01 14:32:39 +01:00
2021-06-09 18:00:20 +01:00
def javaVersion = JavaLanguageVersion . of ( 8 )
2021-02-13 12:39:52 +00:00
java {
toolchain {
2021-06-09 18:00:20 +01:00
languageVersion = javaVersion
2021-02-13 12:39:52 +00:00
}
2021-04-24 11:26:04 +01:00
withSourcesJar ( )
withJavadocJar ( )
2021-02-13 12:39:52 +00:00
}
2020-07-03 13:31:26 +01:00
2021-06-09 18:00:20 +01:00
// Tragically java.toolchain.languageVersion doesn't apply to ForgeGradle's
// tasks, so we force all launchers to use the right Java version.
tasks . withType ( JavaCompile ) . configureEach {
javaCompiler = javaToolchains . compilerFor {
languageVersion = javaVersion
}
}
tasks . withType ( JavaExec ) . configureEach {
javaLauncher = javaToolchains . launcherFor {
languageVersion = javaVersion
}
}
2017-05-01 14:32:39 +01:00
minecraft {
2019-04-02 13:27:27 +01:00
runs {
client {
workingDirectory project . file ( 'run' )
property 'forge.logging.markers' , 'REGISTRIES'
property 'forge.logging.console.level' , 'debug'
2017-07-06 17:23:35 +01:00
2019-04-02 13:27:27 +01:00
mods {
computercraft {
source sourceSets . main
}
}
}
server {
2021-01-08 16:16:56 +00:00
workingDirectory project . file ( "run/server" )
2021-01-09 19:50:27 +00:00
property 'forge.logging.markers' , 'REGISTRIES'
2019-04-02 13:27:27 +01:00
property 'forge.logging.console.level' , 'debug'
2021-01-09 19:50:27 +00:00
arg "--nogui"
2019-04-02 13:27:27 +01:00
mods {
computercraft {
source sourceSets . main
}
}
}
2020-01-29 16:41:26 +00:00
data {
workingDirectory project . file ( 'run' )
2021-01-09 19:50:27 +00:00
property 'forge.logging.markers' , 'REGISTRIES'
2020-01-29 16:41:26 +00:00
property 'forge.logging.console.level' , 'debug'
args '--mod' , 'computercraft' , '--all' , '--output' , file ( 'src/generated/resources/' ) , '--existing' , file ( 'src/main/resources/' )
mods {
computercraft {
source sourceSets . main
}
}
}
2021-01-09 19:50:27 +00:00
testServer {
workingDirectory project . file ( 'test-files/server' )
parent runs . server
mods {
cctest {
source sourceSets . test
}
}
}
2019-04-02 13:27:27 +01:00
}
2021-01-09 19:22:58 +00:00
mappings channel: 'official' , version: project . mc_version
2019-04-02 13:27:27 +01:00
accessTransformer file ( 'src/main/resources/META-INF/accesstransformer.cfg' )
2017-05-01 14:32:39 +01:00
}
2020-07-03 13:31:26 +01:00
sourceSets {
main . resources {
srcDir 'src/generated/resources'
}
2020-01-29 16:41:26 +00:00
}
2017-10-25 13:40:35 +01:00
repositories {
2020-07-03 13:31:26 +01:00
mavenCentral ( )
2017-05-01 17:49:22 +01:00
maven {
2019-03-19 11:47:12 +00:00
name "SquidDev"
url "https://squiddev.cc/maven"
}
2017-05-01 17:49:22 +01:00
}
configurations {
shade
compile . extendsFrom shade
2020-07-03 13:31:26 +01:00
cctJavadoc
2017-10-25 13:40:35 +01:00
}
2017-05-01 14:32:39 +01:00
dependencies {
2019-10-27 15:16:47 +00:00
checkstyle "com.puppycrawl.tools:checkstyle:8.25"
2019-06-08 00:28:03 +01:00
2019-04-02 13:27:27 +01:00
minecraft "net.minecraftforge:forge:${mc_version}-${forge_version}"
2018-08-11 10:48:41 +01:00
2020-04-22 11:04:29 +01:00
compileOnly fg . deobf ( "mezz.jei:jei-1.15.2:6.0.0.3:api" )
2020-04-22 11:11:02 +01:00
compileOnly fg . deobf ( "com.blamejared.crafttweaker:CraftTweaker-1.15.2:6.0.0.9" )
2020-04-22 11:04:29 +01:00
runtimeOnly fg . deobf ( "mezz.jei:jei-1.15.2:6.0.0.3" )
2018-08-11 10:48:41 +01:00
2021-05-13 18:09:08 +01:00
shade 'org.squiddev:Cobalt:0.5.2-SNAPSHOT'
2018-02-21 15:29:34 +00:00
2020-12-05 11:32:00 +00:00
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.0'
testImplementation 'org.junit.jupiter:junit-jupiter-params:5.7.0'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.0'
2020-05-15 13:21:16 +01:00
testImplementation 'org.hamcrest:hamcrest:2.2'
2021-01-09 19:50:27 +00:00
testImplementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.72'
testImplementation 'org.jetbrains.kotlin:kotlin-reflect:1.3.72'
testImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.8'
2018-04-19 22:36:00 +01:00
2021-05-15 21:11:09 +01:00
cctJavadoc 'cc.tweaked:cct-javadoc:1.4.0'
2017-05-01 14:32:39 +01:00
}
2019-06-15 11:05:45 +01:00
// Compile tasks
2017-11-14 22:37:37 +00:00
javadoc {
include "dan200/computercraft/api/**/*.java"
}
2020-07-03 13:31:26 +01:00
task luaJavadoc ( type: Javadoc ) {
description "Generates documentation for Java-side Lua functions."
group "documentation"
source = sourceSets . main . allJava
2020-11-12 19:01:50 +00:00
destinationDir = file ( "${project.docsDir}/luaJavadoc" )
2020-07-03 13:31:26 +01:00
classpath = sourceSets . main . compileClasspath
options . docletpath = configurations . cctJavadoc . files as List
options . doclet = "cc.tweaked.javadoc.LuaDoclet"
2021-02-13 12:39:52 +00:00
options . noTimestamp = false
2020-07-03 13:31:26 +01:00
2021-02-13 12:39:52 +00:00
javadocTool = javaToolchains . javadocToolFor {
languageVersion = JavaLanguageVersion . of ( 11 )
2020-07-03 13:31:26 +01:00
}
}
2017-05-14 17:00:14 +01:00
jar {
manifest {
2019-04-02 13:27:27 +01:00
attributes ( [ "Specification-Title" : "computercraft" ,
"Specification-Vendor" : "SquidDev" ,
2019-07-21 09:41:58 +01:00
"Specification-Version" : "1" ,
2019-04-02 13:27:27 +01:00
"Implementation-Title" : "CC: Tweaked" ,
"Implementation-Version" : "${mod_version}" ,
"Implementation-Vendor" : "SquidDev" ,
"Implementation-Timestamp" : new Date ( ) . format ( "yyyy-MM-dd'T'HH:mm:ssZ" ) ] )
2017-05-14 17:00:14 +01:00
}
2017-11-14 21:48:47 +00:00
from configurations . shade . collect { it . isDirectory ( ) ? it : zipTree ( it ) }
2017-05-14 17:00:14 +01:00
}
2019-06-15 11:05:45 +01:00
[ compileJava , compileTestJava ] . forEach {
it . configure {
2019-12-24 19:16:06 +00:00
options . compilerArgs < < "-Xlint" < < "-Xlint:-processing"
2019-06-15 11:05:45 +01:00
}
}
2017-05-24 12:35:41 -04:00
processResources {
2019-03-19 11:47:12 +00:00
inputs . property "version" , mod_version
2019-02-20 09:48:16 +00:00
inputs . property "mcversion" , mc_version
2017-05-01 14:32:39 +01:00
2019-01-28 14:05:30 +00:00
def hash = 'none'
2017-05-24 13:20:46 -04:00
Set < String > contributors = [ ]
2019-01-28 14:05:30 +00:00
try {
2021-01-16 15:40:42 +00:00
hash = [ "git" , "-C" , projectDir , "rev-parse" , "HEAD" ] . execute ( ) . text . trim ( )
2017-07-06 17:23:35 +01:00
2019-01-28 14:05:30 +00:00
def blacklist = [ 'GitHub' , 'dan200' , 'Daniel Ratcliffe' ]
2021-01-16 15:40:42 +00:00
[ "git" , "-C" , projectDir , "log" , "--format=tformat:%an%n%cn" ] . execute ( ) . text . split ( '\n' ) . each {
if ( ! blacklist . contains ( it ) ) contributors . add ( it )
2019-01-28 14:05:30 +00:00
}
2021-01-16 15:40:42 +00:00
} catch ( Exception e ) {
e . printStackTrace ( )
}
2019-01-28 14:05:30 +00:00
inputs . property "commithash" , hash
2021-06-09 18:00:20 +01:00
duplicatesStrategy = DuplicatesStrategy . INCLUDE
2017-05-24 13:20:46 -04:00
2017-05-01 14:32:39 +01:00
from ( sourceSets . main . resources . srcDirs ) {
2019-04-02 13:27:27 +01:00
include 'META-INF/mods.toml'
include 'data/computercraft/lua/rom/help/credits.txt'
2017-05-24 13:20:46 -04:00
2019-03-19 11:47:12 +00:00
expand 'version' : mod_version ,
2019-02-20 09:48:16 +00:00
'mcversion' : mc_version ,
'gitcontributors' : contributors . sort ( false , String . CASE_INSENSITIVE_ORDER ) . join ( '\n' )
2017-07-06 17:23:35 +01:00
}
2017-05-01 14:32:39 +01:00
from ( sourceSets . main . resources . srcDirs ) {
2019-04-02 13:27:27 +01:00
exclude 'META-INF/mods.toml'
exclude 'data/computercraft/lua/rom/help/credits.txt'
2017-05-01 14:32:39 +01:00
}
}
2021-06-09 18:00:20 +01:00
sourcesJar {
duplicatesStrategy = DuplicatesStrategy . INCLUDE
}
2020-11-12 19:01:50 +00:00
// Web tasks
import org.apache.tools.ant.taskdefs.condition.Os
List < String > mkCommand ( String command ) {
return Os . isFamily ( Os . FAMILY_WINDOWS ) ? [ "cmd" , "/c" , command ] : [ "sh" , "-c" , command ]
}
task rollup ( type: Exec ) {
group = "build"
description = "Bundles JS into rollup"
inputs . files ( fileTree ( "src/web" ) ) . withPropertyName ( "sources" )
inputs . file ( "package-lock.json" ) . withPropertyName ( "package-lock.json" )
inputs . file ( "tsconfig.json" ) . withPropertyName ( "Typescript config" )
inputs . file ( "rollup.config.js" ) . withPropertyName ( "Rollup config" )
outputs . file ( "$buildDir/rollup/index.js" ) . withPropertyName ( "output" )
commandLine mkCommand ( '"node_modules/.bin/rollup" --config rollup.config.js' )
}
task minifyWeb ( type: Exec , dependsOn: rollup ) {
group = "build"
description = "Bundles JS into rollup"
inputs . file ( "$buildDir/rollup/index.js" ) . withPropertyName ( "sources" )
inputs . file ( "package-lock.json" ) . withPropertyName ( "package-lock.json" )
outputs . file ( "$buildDir/rollup/index.min.js" ) . withPropertyName ( "output" )
2020-12-25 17:42:53 +00:00
commandLine mkCommand ( '"node_modules/.bin/terser"' + " -o '$buildDir/rollup/index.min.js' '$buildDir/rollup/index.js'" )
2020-11-12 19:01:50 +00:00
}
task illuaminateDocs ( type: Exec , dependsOn: [ minifyWeb , luaJavadoc ] ) {
group = "build"
description = "Bundles JS into rollup"
2020-11-20 19:36:28 +00:00
inputs . files ( fileTree ( "doc" ) ) . withPropertyName ( "docs" )
inputs . files ( fileTree ( "src/main/resources/data/computercraft/lua/rom" ) ) . withPropertyName ( "lua rom" )
2020-11-12 19:01:50 +00:00
inputs . file ( "illuaminate.sexp" ) . withPropertyName ( "illuaminate.sexp" )
2020-12-10 22:16:49 +00:00
inputs . dir ( "$buildDir/docs/luaJavadoc" )
2020-11-12 19:01:50 +00:00
inputs . file ( "$buildDir/rollup/index.min.js" ) . withPropertyName ( "scripts" )
inputs . file ( "src/web/styles.css" ) . withPropertyName ( "styles" )
outputs . dir ( "$buildDir/docs/lua" )
commandLine mkCommand ( '"bin/illuaminate" doc-gen' )
}
task docWebsite ( type: Copy , dependsOn: [ illuaminateDocs ] ) {
from 'doc/logo.png'
into "${project.docsDir}/lua"
}
2019-06-15 11:05:45 +01:00
// Check tasks
test {
useJUnitPlatform ( )
testLogging {
events "skipped" , "failed"
}
}
2019-06-08 00:28:03 +01:00
2020-05-11 15:41:39 +01:00
jacocoTestReport {
2021-01-15 09:54:38 +00:00
dependsOn ( 'test' )
2020-05-11 15:41:39 +01:00
reports {
xml . enabled true
html . enabled true
}
}
check . dependsOn jacocoTestReport
2021-05-21 22:11:25 +01:00
import com.hierynomus.gradle.license.tasks.LicenseCheck
import com.hierynomus.gradle.license.tasks.LicenseFormat
2019-06-08 00:28:03 +01:00
license {
mapping ( "java" , "SLASHSTAR_STYLE" )
strictCheck true
ext . year = Calendar . getInstance ( ) . get ( Calendar . YEAR )
}
[ licenseMain , licenseFormatMain ] . forEach {
it . configure {
include ( "**/*.java" )
exclude ( "dan200/computercraft/api/**" )
2021-01-08 16:16:56 +00:00
header file ( 'config/license/main.txt' )
2019-06-08 00:28:03 +01:00
}
}
[ licenseTest , licenseFormatTest ] . forEach {
it . configure {
include ( "**/*.java" )
2021-01-08 16:16:56 +00:00
header file ( 'config/license/main.txt' )
2019-06-08 00:28:03 +01:00
}
}
2019-06-15 11:05:45 +01:00
gradle . projectsEvaluated {
tasks . withType ( LicenseFormat ) {
outputs . upToDateWhen { false }
}
}
2019-06-08 00:28:03 +01:00
task licenseAPI ( type: LicenseCheck ) ;
task licenseFormatAPI ( type: LicenseFormat ) ;
[ licenseAPI , licenseFormatAPI ] . forEach {
it . configure {
source = sourceSets . main . java
include ( "dan200/computercraft/api/**" )
2021-01-08 16:16:56 +00:00
header file ( 'config/license/api.txt' )
2019-06-08 00:28:03 +01:00
}
}
2021-01-09 19:50:27 +00:00
task setupServer ( type: Copy ) {
2021-01-15 09:54:38 +00:00
group "test server"
description "Sets up the environment for the test server."
2021-01-09 19:50:27 +00:00
from ( "src/test/server-files" ) {
include "eula.txt"
include "server.properties"
}
into "test-files/server"
}
2021-01-15 09:54:38 +00:00
tasks . register ( 'testInGame' , JavaExec . class ) . configure {
it . group ( 'test server' )
it . description ( "Runs tests on a temporary Minecraft server." )
2021-05-29 15:11:29 +01:00
it . dependsOn ( setupServer , 'prepareRunTestServer' , 'cleanTestInGame' )
2021-01-15 09:54:38 +00:00
// Copy from runTestServer. We do it in this slightly odd way as runTestServer
// isn't created until the task is configured (which is no good for us).
JavaExec exec = tasks . getByName ( 'runTestServer' )
it . setWorkingDir ( exec . getWorkingDir ( ) )
it . setSystemProperties ( exec . getSystemProperties ( ) )
it . setBootstrapClasspath ( exec . getBootstrapClasspath ( ) )
it . setClasspath ( exec . getClasspath ( ) )
it . setMain ( exec . getMain ( ) )
it . setEnvironment ( exec . getEnvironment ( ) )
it . setArgs ( exec . getArgs ( ) )
it . setJvmArgs ( exec . getJvmArgs ( ) )
it . systemProperty ( 'forge.logging.console.level' , 'info' )
it . systemProperty ( 'cctest.run' , 'true' )
// Jacoco and modlauncher don't play well together as the classes loaded in-game don't
// match up with those written to disk. We get Jacoco to dump all classes to disk, and
// use that when generating the report.
def coverageOut = new File ( buildDir , 'jacocoClassDump/testInGame' )
jacoco . applyTo ( it )
it . jacoco . setIncludes ( [ "dan200.computercraft.*" ] )
it . jacoco . setClassDumpDir ( coverageOut )
2021-01-15 16:35:49 +00:00
it . outputs . dir ( coverageOut )
2021-01-15 09:54:38 +00:00
// Older versions of modlauncher don't include a protection domain (and thus no code
// source). Jacoco skips such classes by default, so we need to explicitly include them.
it . jacoco . setIncludeNoLocationClasses ( true )
}
tasks . register ( 'jacocoTestInGameReport' , JacocoReport . class ) . configure {
it . group ( 'test server' )
it . description ( 'Generate coverage reports for in-game tests (testInGame)' )
it . dependsOn ( 'testInGame' )
it . executionData ( new File ( buildDir , 'jacoco/testInGame.exec' ) )
2021-02-13 12:48:59 +00:00
it . sourceDirectories . from ( sourceSets . main . allJava . srcDirs )
it . classDirectories . from ( new File ( buildDir , 'jacocoClassDump/testInGame' ) )
2021-01-15 09:54:38 +00:00
it . reports {
xml . enabled true
html . enabled true
}
}
check . dependsOn ( 'jacocoTestInGameReport' )
2019-06-15 11:05:45 +01:00
// Upload tasks
2019-06-08 00:28:03 +01:00
2019-06-02 16:11:18 +01:00
task checkRelease {
2019-05-31 10:19:24 +01:00
group "upload"
description "Verifies that everything is ready for a release"
inputs . property "version" , mod_version
2021-06-12 19:48:41 +01:00
inputs . file ( "src/main/resources/data/computercraft/lua/rom/help/changelog.md" )
inputs . file ( "src/main/resources/data/computercraft/lua/rom/help/whatsnew.md" )
2019-05-31 10:19:24 +01:00
doLast {
def ok = true
// Check we're targetting the current version
2021-06-12 19:48:41 +01:00
def whatsnew = new File ( projectDir , "src/main/resources/data/computercraft/lua/rom/help/whatsnew.md" ) . readLines ( )
2019-05-31 10:19:24 +01:00
if ( whatsnew [ 0 ] ! = "New features in CC: Tweaked $mod_version" ) {
ok = false
2021-06-12 19:48:41 +01:00
project . logger . error ( "Expected `whatsnew.md' to target $mod_version." )
2019-05-31 10:19:24 +01:00
}
// Check "read more" exists and trim it
def idx = whatsnew . findIndexOf { it = = 'Type "help changelog" to see the full version history.' }
if ( idx = = - 1 ) {
ok = false
2021-06-12 19:48:41 +01:00
project . logger . error ( "Must mention the changelog in whatsnew.md" )
2019-05-31 10:19:24 +01:00
} else {
whatsnew = whatsnew . getAt ( 0 . . < idx )
}
// Check whatsnew and changelog match.
def versionChangelog = "# " + whatsnew . join ( "\n" )
2021-06-12 19:48:41 +01:00
def changelog = new File ( projectDir , "src/main/resources/data/computercraft/lua/rom/help/changelog.md" ) . getText ( )
2019-05-31 10:19:24 +01:00
if ( ! changelog . startsWith ( versionChangelog ) ) {
ok = false
project . logger . error ( "whatsnew and changelog are not in sync" )
}
if ( ! ok ) throw new IllegalStateException ( "Could not check release" )
}
}
2019-10-30 17:07:29 +00:00
check . dependsOn checkRelease
2019-05-31 10:19:24 +01:00
2017-12-01 20:05:26 +00:00
curseforge {
apiKey = project . hasProperty ( 'curseForgeApiKey' ) ? project . curseForgeApiKey : ''
project {
id = '282001'
2020-06-16 09:45:42 +01:00
releaseType = 'release'
2019-04-02 21:33:55 +01:00
changelog = "Release notes can be found on the GitHub repository (https://github.com/SquidDev-CC/CC-Tweaked/releases/tag/v${mc_version}-${mod_version})."
2019-05-01 13:48:33 +01:00
relations {
incompatible "computercraft"
}
2017-12-01 20:05:26 +00:00
}
}
2021-06-09 18:00:20 +01:00
import com.modrinth.minotaur.TaskModrinthUpload
tasks . register ( 'publishModrinth' , TaskModrinthUpload . class ) . configure {
dependsOn ( 'assemble' , 'reobfJar' )
onlyIf {
project . hasProperty ( 'modrinthApiKey' )
}
2021-06-29 09:08:45 +00:00
token = project . hasProperty ( 'modrinthApiKey' ) ? project . getProperty ( 'modrinthApiKey' ) : ''
2021-06-09 18:00:20 +01:00
projectId = 'gu7yAYhd'
2021-06-28 23:20:54 +01:00
versionNumber = "${project.mc_version}-${project.mod_version}"
2021-06-09 18:00:20 +01:00
uploadFile = jar
addGameVersion ( project . mc_version )
2021-06-28 23:20:54 +01:00
changelog = "Release notes can be found on the [GitHub repository](https://github.com/SquidDev-CC/CC-Tweaked/releases/tag/v${mc_version}-${mod_version})."
2021-06-09 18:00:20 +01:00
addLoader ( 'forge' )
}
2021-05-20 19:03:30 +01:00
tasks . withType ( GenerateModuleMetadata ) {
// We can't generate metadata as that includes Forge as a dependency.
enabled = false
}
2018-04-19 22:36:00 +01:00
publishing {
publications {
2021-04-24 11:26:04 +01:00
maven ( MavenPublication ) {
2018-04-19 22:36:00 +01:00
from components . java
2021-04-24 11:26:04 +01:00
pom {
name = 'CC: Tweaked'
description = 'CC: Tweaked is a fork of ComputerCraft, adding programmable computers, turtles and more to Minecraft.'
url = 'https://github.com/SquidDev-CC/CC-Tweaked'
scm {
url = 'https://github.com/SquidDev-CC/CC-Tweaked.git'
}
issueManagement {
system = 'github'
url = 'https://github.com/SquidDev-CC/CC-Tweaked/issues'
}
licenses {
license {
name = 'ComputerCraft Public License, Version 1.0'
url = 'https://github.com/SquidDev-CC/CC-Tweaked/blob/mc-1.15.x/LICENSE'
}
}
2021-05-20 19:03:30 +01:00
withXml { asNode ( ) . remove ( asNode ( ) . get ( "dependencies" ) ) }
2021-04-24 11:26:04 +01:00
}
2018-04-19 22:36:00 +01:00
}
}
repositories {
2021-04-24 11:26:04 +01:00
if ( project . hasProperty ( "mavenUser" ) ) {
maven {
name = "SquidDev"
url = "https://squiddev.cc/maven"
credentials {
username = project . property ( "mavenUser" ) as String
password = project . property ( "mavenPass" ) as String
2018-04-20 19:39:53 +01:00
}
2018-04-19 22:36:00 +01:00
}
}
}
}
2019-04-07 15:30:27 +01:00
githubRelease {
token project . hasProperty ( 'githubApiKey' ) ? project . githubApiKey : ''
owner 'SquidDev-CC'
repo 'CC-Tweaked'
2021-01-16 15:40:42 +00:00
targetCommitish . set ( project . provider ( {
try {
return [ "git" , "-C" , projectDir , "rev-parse" , "--abbrev-ref" , "HEAD" ] . execute ( ) . text . trim ( )
} catch ( Exception e ) {
e . printStackTrace ( )
}
return "master"
} ) )
2019-04-07 15:30:27 +01:00
tagName "v${mc_version}-${mod_version}"
releaseName "[${mc_version}] ${mod_version}"
2021-01-16 15:40:42 +00:00
body . set ( project . provider ( {
2021-06-28 23:07:36 +01:00
"## " + new File ( projectDir , "src/main/resources/data/computercraft/lua/rom/help/whatsnew.md" )
2019-05-31 10:19:24 +01:00
. readLines ( )
. takeWhile { it ! = 'Type "help changelog" to see the full version history.' }
. join ( "\n" ) . trim ( )
2021-01-16 15:40:42 +00:00
} ) )
2020-06-16 09:45:42 +01:00
prerelease false
2019-04-07 15:30:27 +01:00
}
2021-06-09 18:00:20 +01:00
def uploadTasks = [ "publish" , "curseforge" , "publishModrinth" , "githubRelease" ]
2019-06-01 09:23:18 +01:00
uploadTasks . forEach { tasks . getByName ( it ) . dependsOn checkRelease }
task uploadAll ( dependsOn: uploadTasks ) {
2019-04-16 10:32:49 +01:00
group "upload"
2021-06-09 18:00:20 +01:00
description "Uploads to all repositories (Maven, Curse, Modrinth, GitHub release)"
2019-04-16 10:32:49 +01:00
}