Overhaul build script dependency handling, moves all version numbers for dependencies to gradle.properties and moves downloading Sedna from the GitHub workflow into the gradle workflow.

This commit is contained in:
JacksonAbney
2025-04-26 12:30:06 -08:00
parent 1556cac791
commit 2eec076420
4 changed files with 73 additions and 31 deletions

View File

@@ -18,7 +18,6 @@ jobs:
- uses: actions/checkout@v4
- name: build
run: |
wget https://github.com/North-Western-Development/sedna-mc/releases/download/1.20.1-forge%2F1.0.54/sedna-1.20.1-forge-1.0.54+8d77183.jar -O libs/sedna.jar
./gradlew build
- uses: actions/upload-artifact@v4

View File

@@ -30,7 +30,6 @@ jobs:
- uses: actions/checkout@v4
- name: build
run: |
wget https://github.com/North-Western-Development/sedna-mc/releases/download/1.20.1-forge%2F1.0.54/sedna-1.20.1-forge-1.0.54+8d77183.jar -O libs/sedna.jar
./gradlew -Psemver='${{ github.event.release.tag_name }}' build
- name: Add Artifacts to Github Release

View File

@@ -98,15 +98,15 @@ dependencies {
}
implementation fileTree(dir: 'libs', include: '*.jar')
// implementation "curse.maven:sedna-511276:3885542"
minecraftLibrary "org.apache.commons:commons-collections4:4.4"
minecraftLibrary "org.apache.commons:commons-collections4:${apache_commons_version}"
implementation fg.deobf("curse.maven:architectury-api-419699:5137938")
implementation fg.deobf("curse.maven:markdownmanual-502485:4873115")
implementation fg.deobf("curse.maven:architectury-api-${architectury_project_id}:${architectury_file_id}")
implementation fg.deobf("curse.maven:markdownmanual-${markdownmanual_project_id}:${markdownmanual_file_id}")
compileOnly fg.deobf("mezz.jei:jei-1.20.1-common-api:15.3.0.4")
compileOnly fg.deobf("mezz.jei:jei-1.20.1-forge-api:15.3.0.4")
compileOnly fg.deobf("mezz.jei:jei-${minecraft_version}-common-api:${jei_version}")
compileOnly fg.deobf("mezz.jei:jei-${minecraft_version}-${minecraft_sdk}-api:${jei_version}")
runtimeOnly fg.deobf("mezz.jei:jei-1.20.1-forge:15.3.0.4")
runtimeOnly fg.deobf("mezz.jei:jei-${minecraft_version}-${minecraft_sdk}:${jei_version}")
compileOnly fg.deobf("mrtjp:ProjectRed:${minecraft_version}-${pr_version}:api")
runtimeOnly fg.deobf("io.codechicken:CodeChickenLib:${minecraft_version}-${ccl_version}:universal")
@@ -116,36 +116,38 @@ dependencies {
if (debug_embeddium.toBoolean())
{
runtimeOnly fg.deobf("curse.maven:embeddium-908741:5521846")
runtimeOnly fg.deobf("curse.maven:embeddium-${embeddium_project_id}:${embeddium_file_id}")
}
if (debug_embeddium_plus_plus.toBoolean())
{
runtimeOnly fg.deobf("curse.maven:embeddiumplus-931925:5436746")
runtimeOnly fg.deobf("curse.maven:embeddiumplus-${embeddium_plus_plus_project_id}:${embeddium_plus_plus_file_id}")
}
if (debug_oculus.toBoolean())
{
runtimeOnly fg.deobf("curse.maven:oculus-581495:5299671")
runtimeOnly fg.deobf("curse.maven:oculus-${oculus_project_id}:${oculus_file_id}")
}
testImplementation "org.mockito:mockito-inline:4.3.1"
testImplementation "org.junit.jupiter:junit-jupiter-api:5.8.2"
testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:5.8.2"
jarJar(group: 'libs', name: 'sedna', version: '[]') {
jarJar.pin(it, "")
}
// Test Dependencies
testImplementation "org.mockito:mockito-inline:${mockito_version}"
testImplementation "org.junit.jupiter:junit-jupiter-api:${jupiter_version}"
testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:${jupiter_version}"
}
System.setProperty("line.separator", "\n")
def nativeLibsDir = file("src/main/resources/natives")
tasks.register("downloadNativeLibs") {
tasks.register("downloadDependencies") {
group = "build setup"
doLast {
def repo = "North-Western-Development/oc2r-native-networking"
def baseUrl = "https://github.com/${repo}/releases/latest/download/"
// native networking library
def nativeNetworkingBaseUrl = "https://github.com/${native_networking_repo}/releases/download/${network_lib_version}/"
def targets = [
"macos/liboc2rnet-x86_64.dylib",
@@ -160,12 +162,23 @@ tasks.register("downloadNativeLibs") {
def file = new File(nativeLibsDir, path)
file.parentFile.mkdirs()
def fileName = path.tokenize('/')[-1]
def url = new URL("${baseUrl}${fileName}")
def url = new URL("${nativeNetworkingBaseUrl}${fileName}")
println "Downloading ${url} → ${file}"
file.withOutputStream { out ->
url.openStream().withCloseable { IOUtils.copy(it, out) }
}
}
// senda
def sednaUrl = "https://github.com/${senda_repo}/releases/download/${minecraft_version}-${minecraft_sdk}/${sedna_version}/sedna-${minecraft_version}-${minecraft_sdk}-${sedna_version}+${sedna_version_commit_ref}.jar"
def sednaFile = new File('libs', 'sedna.jar')
sednaFile.parentFile.mkdirs()
def url = new URL("${sednaUrl}")
println "Downloading ${url} → ${sednaFile}"
sednaFile.withOutputStream { out ->
url.openStream().withCloseable { IOUtils.copy(it, out) }
}
}
}
@@ -184,7 +197,7 @@ tasks.register('copyLicensesToResources', Copy) {
processResources.dependsOn(packageScripts)
processResources.dependsOn(copyLicensesToResources)
processResources.dependsOn(downloadNativeLibs)
processResources.dependsOn(downloadDependencies)
tasks.named('jarJar'){
}
@@ -279,7 +292,7 @@ curseforge {
releaseType = System.getenv('RELEASE_TYPE') ?: "alpha"
changelogType = 'markdown'
changelog = System.getenv("CHANGELOG") ?: "Changelog not available."
addGameVersion "Forge"
addGameVersion minecraft_sdk
addGameVersion minecraft_version
addGameVersion "Java 17"
mainArtifact "build/libs/oc2r-${minecraft_version}-${minecraft_sdk}-${version}-all.jar"
@@ -291,11 +304,11 @@ curseforge {
modrinth {
token = System.getenv("MODRINTH_TOKEN")
projectId = "F1gm4RsH"
projectId = modrinth_project_id
versionType = System.getenv('RELEASE_TYPE') ?: "alpha"
uploadFile = "build/libs/oc2r-${minecraft_version}-${minecraft_sdk}-${version}-all.jar"
gameVersions = ["1.20.1"]
loaders = ["forge"]
gameVersions = [minecraft_version]
loaders = [minecraft_sdk]
changelog = System.getenv("CHANGELOG") ?: "Changelog not available."
dependencies {
required.project "markdownmanual"

View File

@@ -3,20 +3,51 @@
org.gradle.jvmargs=-Xmx3G
org.gradle.daemon=false
# Minecraft Related
forge_version=47.3.38
minecraft_version = 1.20.1
minecraft_sdk = forge
semver=0.0.0
# Mod Version (for Local Builds Only)
semver = 0.0.0
curse_project_id=1037738
# Curse Publishing Info
curse_project_id = 1037738
pr_version=4.19.0-beta+3
ccl_version=4.4.0.+
cbm_version=3.3.0.+
# Modrinth Publishing Info
modrinth_project_id = F1gm4RsH
debug_embeddium=false
# Dependency CurseForge Project IDs and File IDs (essentially the file id is synonymous with version number and archive classifier)
markdownmanual_project_id = 502485
markdownmanual_file_id = 4873115
architectury_project_id = 419699
architectury_file_id = 5137938
debug_embeddium_plus_plus=false
# Dependency Version Info
apache_commons_version = 4.4
jei_version = 15.3.0.4
pr_version = 4.19.0-beta+3
ccl_version = 4.4.0.+
cbm_version = 3.3.0.+
network_lib_version = 1.0.3
sedna_version = 1.0.54
sedna_version_commit_ref = 8d77183
debug_oculus=false
# Debug Options
debug_embeddium = false
embeddium_project_id = 908741
embeddium_file_id = 5521846
debug_embeddium_plus_plus = false
embeddium_plus_plus_project_id = 931925
embeddium_plus_plus_file_id = 5436746
debug_oculus = false
oculus_project_id = 581495
oculus_file_id = 5299671
# Repos
native_networking_repo = North-Western-Development/oc2r-native-networking
senda_repo = North-Western-Development/sedna-mc
# Test Dependency Versions
mockito_version = 4.3.1
jupiter_version = 5.8.2