Skip to content

Commit

Permalink
Added curseforge publishing for sub-projects
Browse files Browse the repository at this point in the history
  • Loading branch information
HenryLoenwind committed Oct 6, 2018
1 parent a01e1d4 commit 3f1518f
Show file tree
Hide file tree
Showing 15 changed files with 119 additions and 70 deletions.
124 changes: 57 additions & 67 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ buildscript {

plugins {
id 'com.matthewprenger.cursegradle' version "1.1.0"
id "com.dorongold.task-tree" version "1.3"
}

apply plugin: 'eclipse'
Expand Down Expand Up @@ -217,16 +218,66 @@ allprojects {
}
}
}

if (project.curse_projectId?.trim())
curseforge {
if (project.hasProperty('curseforge_key')) {
apiKey = project.curseforge_key
}

def build_number = System.getenv('BUILD_NUMBER') == null ? '0' : System.getenv('BUILD_NUMBER')
def changelog_content = System.getenv('CHANGELOG') != null && !System.getenv('CHANGELOG').equals('none') ? System.getenv('CHANGELOG') : ''

def changelog_text = getChangelogFormat()
.replaceAll('#BUILD#', build_number)
.replaceAll('#EXTRA#', changelog_content)

project {
id = project.curse_projectId
changelog = changelog_text
changelogType = 'html'
releaseType = 'release'

mainArtifact(jar) {
String display_addon = project.hasProperty('curse_display_name') ? project.curse_display_name : "Ender IO";
displayName = "${display_addon} - ${version}"
}

relations {
if (project.hasProperty('curse_optional_libraries'))
project.curse_optional_libraries.split(/,\s*/).findAll { it?.trim() }.each { slug -> optionalLibrary slug }
if (project.hasProperty('curse_required_libraries'))
project.curse_required_libraries.split(/,\s*/).findAll { it?.trim() }.each { slug -> requiredLibrary slug }
}

afterEvaluate {
// Work around https://github.com/matthewprenger/CurseGradle/issues/20
gameVersionStrings.remove('Java 9')
// (1) Work around cursegradle setting dependencies for the curseforgeXXX tasks to :subproject:jar and :reobfJar -> force :subproject:reobfJar instead.
// (2) Depend on rmKeyStore instead of reobfJar so the signed jar is uploaded.
// (3) It is very tricky to not run too early (before cursegradle creates the upload task), that's why this looks so convoluted...
allprojects { p ->
p.curseforge.curseProjects.findAll { it.uploadTask }.findAll { it.uploadTask.projectId == p.curse_projectId }.each { curseProject ->
Task reobfTask = p.tasks.findByName('rmKeyStore')
println "Forcing dependency of ${curseProject.uploadTask} to ${reobfTask}"
curseProject.uploadTask.dependsOn.clear()
curseProject.uploadTask.dependsOn reobfTask
}
}
}
}
}

}

// Configuration that applies only to modules
subprojects {
jar {

jar {
into('/META-INF/libraries') {
from configurations.embed
}

doFirst {
manifest {
def contained = configurations.embed.collect { it.getName() };
Expand All @@ -238,7 +289,7 @@ subprojects {
}
}
}

// Assembly an API jar
task apiJar(type: Jar) {
classifier = 'api'
Expand Down Expand Up @@ -303,7 +354,7 @@ jar {
combjarprojects.each { subproject ->
from subproject.sourceSets.main.output.classesDirs
from subproject.sourceSets.main.output.resourcesDir

into('/META-INF/libraries') {
from subproject.configurations.embed
}
Expand Down Expand Up @@ -399,68 +450,6 @@ def release = System.getenv("RELEASE") != null &&
!System.getenv("RELEASE").equalsIgnoreCase("false")

tasks.curseforge.enabled = release && project.hasProperty('curseforge_key')
curseforge {
if (project.hasProperty('curseforge_key')) {
apiKey = project.curseforge_key
}

def build_number = System.getenv('BUILD_NUMBER') == null ? '0' : System.getenv('BUILD_NUMBER')
def changelog_content = System.getenv('CHANGELOG') != null && !System.getenv('CHANGELOG').equals('none') ? System.getenv('CHANGELOG') : ''

def changelog_text = getChangelogFormat()
.replaceAll('#BUILD#', build_number)
.replaceAll('#EXTRA#', changelog_content)

project {
id = project.curse_projectId
changelog = changelog_text
changelogType = 'html'
releaseType = 'alpha' // for now

mainArtifact(jar) {
displayName = "Ender IO - ${version}"
}

relations {
requiredLibrary 'endercore'

// optionalLibrary 'waila'
optionalLibrary 'jei'
optionalLibrary 'the-one-probe'
optionalLibrary 'baubles'
optionalLibrary 'chisel'
// optionalLibrary 'hwyla'
optionalLibrary 'opencomputers'
optionalLibrary 'forestry'
optionalLibrary 'ctm'
optionalLibrary 'applied-energistics-2'
optionalLibrary 'actually-additions'
optionalLibrary 'extreme-reactors'
optionalLibrary 'biomes-o-plenty'
optionalLibrary 'botania'
optionalLibrary 'buildcraft'
// optionalLibrary 'chisels-bits'
optionalLibrary 'computercraft'
optionalLibrary 'extra-utilities'
optionalLibrary 'immersive-engineering'
optionalLibrary 'industrial-craft'
optionalLibrary 'natura'
optionalLibrary 'thermal-foundation'
optionalLibrary 'tinkers-construct'
}

// TODO: Make each subproject upload to its own curseforge project
// buildprojects.each { subproject ->
// addArtifact subproject.jar

// if (resolveOption(subproject, 'publish_api'))
// addArtifact subproject.apiJar

// if (resolveOption(subproject, 'publish_source'))
// addArtifact subproject.sourceJar
// }
}
}

// Part of the temporary fix for not compiling modules
gradle.taskGraph.whenReady {
Expand Down Expand Up @@ -563,3 +552,4 @@ def resolveOption(Project project, String option, boolean defaultValue = false)

return sourceValue == 'true' || sourceValue == true || sourceValue == 1
}

2 changes: 2 additions & 0 deletions enderio-addons/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,5 @@ include_in_combjar=false

publish_api=false
publish_source=false

curse_projectId=
5 changes: 4 additions & 1 deletion enderio-base/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,7 @@ autosave_version=1.0.6
buildcraft_version=7.99.14
baubles_version=1.5.2
cofhcore_version=1.12.2-4.3.11.6
thaumcraft_version=6.1.BETA13
thaumcraft_version=6.1.BETA13

curse_projectId=297193
curse_display_name=Ender IO Base
5 changes: 5 additions & 0 deletions enderio-conduits-appliedenergistics/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,8 @@ publish_api=false
publish_source=false

ae_version=rv5-stable-11

curse_projectId=297199
curse_display_name=Ender IO AE2 Conduits
curse_optional_libraries=
curse_required_libraries=ender-io-base,ender-io-conduits,applied-energistics-2
5 changes: 5 additions & 0 deletions enderio-conduits-opencomputers/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,8 @@ publish_api=false
publish_source=false

opencomputers_version=MC1.12.2-1.7.2.71

curse_projectId=297200
curse_display_name=Ender IO OC Conduits
curse_optional_libraries=
curse_required_libraries=ender-io-base,ender-io-conduits,opencomputers
5 changes: 5 additions & 0 deletions enderio-conduits-refinedstorage/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,8 @@ publish_source=false

refinedstorage_maven_version=1.6.2-256
refinedstorage_version=1.6.2

curse_projectId=297201
curse_display_name=Ender IO RS Conduits
curse_optional_libraries=
curse_required_libraries=ender-io-base,ender-io-conduits,refined-storage
5 changes: 5 additions & 0 deletions enderio-conduits/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,8 @@ publish_api=false
publish_source=true

computercraft_version=1.80pr1-build5

curse_projectId=297197
curse_display_name=Ender IO Conduits
curse_optional_libraries=
curse_required_libraries=ender-io-base
5 changes: 5 additions & 0 deletions enderio-endergy/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,8 @@ include_in_combjar=false

publish_api=false
publish_source=false

curse_projectId=
curse_display_name=Ender IO Endergy
curse_optional_libraries=ender-io-base,ender-io
curse_required_libraries=
5 changes: 5 additions & 0 deletions enderio-integration-forestry/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,8 @@ publish_api=false
publish_source=false

forestry_version=5.8.0.242

curse_projectId=297202
curse_display_name=Ender IO Forestry
curse_optional_libraries=
curse_required_libraries=ender-io-base,forestry
2 changes: 2 additions & 0 deletions enderio-integration-thaumcraft/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,5 @@ publish_api=false
publish_source=false

thaumcraft_version=6.1.BETA13

curse_projectId=
5 changes: 5 additions & 0 deletions enderio-integration-tic/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,8 @@ publish_source=false

mantle_version=1.12-1.3.1.21
tic_version=1.12.2-2.10.0.81

curse_projectId=297203
curse_display_name=Ender IO TiC
curse_optional_libraries=
curse_required_libraries=ender-io-base,tinkers-construct
5 changes: 5 additions & 0 deletions enderio-invpanel/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,8 @@ include_in_combjar=false

publish_api=false
publish_source=true

curse_projectId=297198
curse_display_name=Ender IO Inventory Panel
curse_optional_libraries=
curse_required_libraries=ender-io-base,ender-io-machines,ender-io-conduits
7 changes: 6 additions & 1 deletion enderio-machines/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,9 @@ publish_api=false
publish_source=true

ftbl_version=5.0.2.10
ftbl_dep=5.0.0
ftbl_dep=5.0.0

curse_projectId=297196
curse_display_name=Ender IO Machines
curse_optional_libraries=
curse_required_libraries=ender-io-base
5 changes: 5 additions & 0 deletions enderio-zoo/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,8 @@ include_in_combjar=false

publish_api=false
publish_source=false

curse_projectId=303001
curse_display_name=Ender IO Zoo
curse_optional_libraries=ender-io-base,ender-io
curse_required_libraries=
4 changes: 3 additions & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,6 @@ chisel_version=0.1.1.26
ctm_version=MC1.12-0.2.3.12

curse_projectId=64578

curse_display_name=Ender IO
curse_optional_libraries=jei,the-one-probe,baubles,chisel,opencomputers,forestry,ctm,applied-energistics-2,actually-additions,extreme-reactors,biomes-o-plenty,botania,buildcraft,extra-utilities,immersive-engineering,industrial-craft,natura,thermal-foundation,tinkers-construct,refined-storage
curse_required_libraries=endercore

0 comments on commit 3f1518f

Please sign in to comment.