Files
architectury-api/fabric/build.gradle
Max 5d4a8d9506 Add rudimentary support for modrinth publishing (#263)
(cherry picked from commit 4da029729c)
Signed-off-by: Max <maxh2709@gmail.com>
2022-05-22 18:36:27 +02:00

149 lines
4.1 KiB
Groovy

plugins {
id "com.github.johnrengelman.shadow" version "7.1.2"
id "com.matthewprenger.cursegradle"
id "com.modrinth.minotaur"
}
loom {
accessWidenerPath = project(":common").loom.accessWidenerPath
}
architectury {
platformSetupLoomIde()
fabric()
}
configurations {
common
shadowCommon // Don't use shadow from the shadow plugin because we don't want IDEA to index this.
compileClasspath.extendsFrom common
runtimeClasspath.extendsFrom common
developmentFabric.extendsFrom common
}
repositories {
maven { url "https://maven.terraformersmc.com/releases/" }
}
dependencies {
modImplementation "net.fabricmc:fabric-loader:${rootProject.fabric_loader_version}"
modImplementation "net.fabricmc.fabric-api:fabric-api:${rootProject.fabric_api_version}"
modCompileOnly("com.terraformersmc:modmenu:${rootProject.mod_menu_version}") { transitive false }
common(project(path: ":common", configuration: "namedElements")) { transitive false }
shadowCommon(project(path: ":common", configuration: "transformProductionFabric")) { transitive false }
}
processResources {
filesMatching("fabric.mod.json") {
expand "version": project.version
}
inputs.property "version", project.version
}
shadowJar {
exclude "architectury-common.accessWidener"
exclude "architectury.common.json"
configurations = [project.configurations.shadowCommon]
classifier "dev-shadow"
}
remapJar {
injectAccessWidener = true
input.set shadowJar.archiveFile
dependsOn shadowJar
classifier null
}
jar {
classifier "dev"
}
sourcesJar {
afterEvaluate {
[":common"].forEach {
def depSources = project(it).sourcesJar
dependsOn depSources
from(depSources.archiveFile.map { zipTree(it) }) {
exclude "architectury.accessWidener"
}
}
}
}
components.java {
withVariantsFromConfiguration(project.configurations.shadowRuntimeElements) {
skip()
}
}
publishing {
publications {
mavenFabric(MavenPublication) {
artifactId = rootProject.archivesBaseName + "-fabric"
from components.java
}
}
repositories {
if (System.getenv("MAVEN_PASS") != null) {
maven {
url = "https://deploy.shedaniel.me/"
credentials {
username = "shedaniel"
password = System.getenv("MAVEN_PASS")
}
}
}
}
}
curseforge {
var CURSE_API_KEY = project.findProperty("CURSE_API_KEY") ?: System.getenv("CURSE_API_KEY")
if (CURSE_API_KEY != null) {
apiKey = CURSE_API_KEY
project {
id = rootProject.curseforge_id
releaseType = "$rootProject.artifact_type"
changelogType = "html"
changelog = releaseChangelog()
addGameVersion "1.19-Snapshot"
addGameVersion "Java 17"
addGameVersion "Fabric"
relations {
requiredDependency "fabric-api"
}
mainArtifact(remapJar.archivePath) {
displayName = "[Fabric $rootProject.supported_version] v$project.version"
}
afterEvaluate {
uploadTask.dependsOn("build")
}
}
}
options {
forgeGradleIntegration = false
javaVersionAutoDetect = false
}
}
modrinth {
var MODRINTH_TOKEN = project.findProperty("MODRINTH_TOKEN") ?: System.getenv("MODRINTH_TOKEN")
if (MODRINTH_TOKEN != null) {
token = MODRINTH_TOKEN
projectId = rootProject.modrinth_id
versionType = "$rootProject.artifact_type"
versionNumber = "$project.version+$project.name"
versionName = "[Fabric $rootProject.supported_version] v$project.version"
changelog = releaseChangelog()
uploadFile = remapJar
gameVersions = ["1.19-pre1"]
loaders = ["fabric"]
dependencies {
// TODO: move to slugs if that functionality becomes available in minotaur
required.project("P7dR8mSH") // Fabric API
}
}
}