0
0
mirror of https://github.com/Wurst-Imperium/Wurst7.git synced 2024-09-19 17:02:13 +02:00
Wurst7/build.gradle
Alexander01998 f53cbff5b6
Update org.kohsuke:github-api to fix vulnerable sub-dependencies
Specifically: CVE-2022-42003, CVE-2021-46877, CVE-2022-42004, and CVE-2020-36518, all caused by com.fasterxml.jackson.core:jackson-databind version 2.13.0.

These vulnerabilities don't affect end users of Wurst. Only developers were potentially affected. Then again, the attack vectors for these CVEs aren't super relevant when compiling Wurst. So, do update your forks, but don't worry too much.
2024-04-17 15:56:15 +02:00

137 lines
4.2 KiB
Groovy

buildscript {
dependencies {
classpath 'org.kohsuke:github-api:1.321'
}
}
plugins {
id 'fabric-loom' version '1.6-SNAPSHOT'
id 'maven-publish'
id 'com.diffplug.spotless' version '6.23.3'
}
def ENV = System.getenv()
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
archivesBaseName = project.archives_base_name
version = project.mod_version
group = project.maven_group
repositories {
// Add repositories to retrieve artifacts from in here.
// You should only use this when depending on other mods because
// Loom adds the essential maven repositories to download Minecraft and libraries from automatically.
// See https://docs.gradle.org/current/userguide/declaring_repositories.html
// for more information about repositories.
}
dependencies {
// To change the versions see the gradle.properties file
minecraft "com.mojang:minecraft:${project.minecraft_version}"
mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2"
modImplementation "net.fabricmc:fabric-loader:${project.loader_version}"
// Fabric API. This is technically optional, but you probably want it anyway.
modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}"
// net.wurstclient.ai.PathPos extends net.minecraft.util.math.BlockPos,
// which uses javax.annotation.concurrent.Immutable, which is part of
// the JSR305 library.
//
// In other words, Wurst won't compile without this library,
// even though it's Minecraft that actually uses it.
modImplementation 'com.google.code.findbugs:jsr305:3.0.2'
}
loom {
accessWidenerPath = file("src/main/resources/wurst.accesswidener")
}
processResources {
inputs.property "version", project.version
filesMatching("fabric.mod.json") {
expand "version": project.version
}
}
tasks.withType(JavaCompile).configureEach {
// Minecraft 1.18 (1.18-pre2) upwards uses Java 17.
it.options.release = 17
}
java {
// Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task
// if it is present.
// If you remove this line, sources will not be generated.
withSourcesJar()
}
jar {
from("LICENSE") {
rename { "${it}_${project.archivesBaseName}"}
}
}
spotless {
java {
removeUnusedImports()
indentWithTabs()
trimTrailingWhitespace()
eclipse().configFile(file("codestyle/formatter.xml"))
lineEndings('WINDOWS')
}
}
// configure the maven publication
publishing {
publications {
create("mavenJava", MavenPublication) {
from components.java
}
}
// See https://docs.gradle.org/current/userguide/publishing_maven.html for information on how to set up publishing.
repositories {
// Add repositories to publish to here.
// Notice: This block does NOT have the same function as the block in the top level.
// The repositories here will be used for publishing your artifact, not for
// retrieving dependencies.
}
}
task moveDevLibs(dependsOn: [remapJar, remapSourcesJar]) {
doLast {
ant.move(file:"${project.buildDir}/devlibs/${archivesBaseName}-${version}-dev.jar", tofile:"${project.buildDir}/libs/${archivesBaseName}-${version}-dev.jar")
ant.move(file:"${project.buildDir}/devlibs/${archivesBaseName}-${version}-sources.jar", tofile:"${project.buildDir}/libs/${archivesBaseName}-${version}-sources-dev.jar")
}
}
import org.kohsuke.github.GHReleaseBuilder
import org.kohsuke.github.GitHub
task github(dependsOn: moveDevLibs) {
onlyIf {
ENV.GITHUB_TOKEN
}
doLast {
def github = GitHub.connectUsingOAuth(ENV.GITHUB_TOKEN as String)
def repository = github.getRepository("Wurst-Imperium/Wurst-MCX2")
def ghVersion = version.substring(0, version.indexOf("-"))
def ghRelease = repository.getReleaseByTagName(ghVersion as String)
if(ghRelease == null) {
def releaseBuilder = new GHReleaseBuilder(repository, ghVersion as String)
ghRelease = releaseBuilder.create()
}
ghRelease.uploadAsset(remapJar.archiveFile.get().getAsFile(), "application/java-archive")
ghRelease.uploadAsset(remapSourcesJar.archiveFile.get().getAsFile(), "application/java-archive")
ghRelease.uploadAsset(new File("${project.buildDir}/libs/${archivesBaseName}-${version}-dev.jar"), "application/java-archive")
ghRelease.uploadAsset(new File("${project.buildDir}/libs/${archivesBaseName}-${version}-sources-dev.jar"), "application/java-archive")
}
}