Skip to content

Commit 742eefe

Browse files
committed
Modernize CI and gradle.properties usage
1 parent e089d00 commit 742eefe

File tree

4 files changed

+143
-88
lines changed

4 files changed

+143
-88
lines changed

.github/workflows/ci.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,12 +67,12 @@ jobs:
6767
if-no-files-found: error
6868
path: build/libs/*
6969
- name: 'Deploy to CurseForge'
70-
if: startsWith(github.ref, 'refs/tags/')
70+
if: startsWith(github.ref, 'refs/tags/') || startsWith(github.ref, 'refs/heads/master')
7171
env:
7272
CURSEFORGE_KEY_SECRET: ${{ secrets.CURSEFORGE_KEY_SECRET }}
7373
run: ./gradlew publishCurseForge
7474
- name: 'Deploy to Modrinth'
75-
if: startsWith(github.ref, 'refs/tags/')
75+
if: startsWith(github.ref, 'refs/tags/') || startsWith(github.ref, 'refs/heads/master')
7676
env:
7777
MODRINTH_KEY_SECRET: ${{ secrets.MODRINTH_KEY_SECRET }}
7878
run: ./gradlew modrinth

build.gradle

Lines changed: 97 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -12,31 +12,33 @@ apply plugin: 'maven-publish'
1212
apply plugin: 'jacoco'
1313

1414
import net.neoforged.gradle.common.tasks.PotentiallySignJar
15+
import net.darkhax.curseforgegradle.Constants
16+
import net.darkhax.curseforgegradle.TaskPublishCurseForge
1517

1618
// Determine build number
1719
String build_number = "DEV" // this will be referenced as simply build_number from now on.
1820
if (System.getenv().BUILD_NUMBER)
1921
build_number = System.getenv().BUILD_NUMBER
20-
if (System.getenv().TRAVIS_BUILD_NUMBER)
21-
build_number = System.getenv().TRAVIS_BUILD_NUMBER
2222
if (System.getenv().GITHUB_RUN_ID)
2323
build_number = System.getenv().GITHUB_RUN_NUMBER
24-
if (System.getenv().RELEASE || System.getenv().TRAVIS_TAG)
24+
if (System.getenv().RELEASE)
2525
build_number = "RELEASE"
2626
logger.lifecycle "BUILDING VERSION: " + build_number
2727

28-
// Set mod details
29-
version = project.mod_version
30-
group = "org.cyclops.integratedscripting"
31-
archivesBaseName = "IntegratedScripting-${project.minecraft_version}-neoforge"
28+
// Include build number in version
29+
if (build_number.equals("RELEASE"))
30+
version = "${project.mod_version}"
31+
else
32+
version = "${project.mod_version}-${build_number}"
33+
3234
base {
33-
archivesName = archivesBaseName
35+
archivesName = "${mod_id}-${minecraft_version}-neoforge"
3436
}
3537

36-
// Set Java details
37-
java.toolchain.languageVersion = JavaLanguageVersion.of(21)
38+
java {
39+
toolchain.languageVersion = JavaLanguageVersion.of(java_version)
40+
}
3841
compileJava.options.compilerArgs << "-Xmaxerrs" << "9999"
39-
println('Java: ' + System.getProperty('java.version') + ' JVM: ' + System.getProperty('java.vm.version') + '(' + System.getProperty('java.vendor') + ') Arch: ' + System.getProperty('os.arch'))
4042

4143
// Load secrets
4244
def getSecrets() {
@@ -46,7 +48,38 @@ def getSecrets() {
4648
}
4749
return props
4850
}
49-
Properties secrets = getSecrets();
51+
def getCurseforgeKey() {
52+
if(secrets.curseforge_key) {
53+
return secrets.curseforge_key
54+
} else if(System.getenv().GITHUB_ACTIONS && System.getenv().CURSEFORGE_KEY_SECRET) {
55+
return System.getenv().CURSEFORGE_KEY_SECRET
56+
} else {
57+
return "DUMMY"
58+
}
59+
}
60+
def getModrinthKey() {
61+
if(secrets.modrinth_key) {
62+
return secrets.modrinth_key
63+
} else if(System.getenv().GITHUB_ACTIONS && System.getenv().MODRINTH_KEY_SECRET) {
64+
return System.getenv().MODRINTH_KEY_SECRET
65+
} else {
66+
return "DUMMY"
67+
}
68+
}
69+
def getChangelog() {
70+
if (System.getenv().RELEASE) {
71+
return file("./resources/changelog/${project.minecraft_version}-${project.mod_version}.txt").getText();
72+
} else {
73+
return "Changes since last release: ${project.github_url}/compare/${project.minecraft_version}-${project.mod_version}...${System.getenv().GITHUB_SHA}"
74+
}
75+
}
76+
//ext {
77+
Properties secrets = getSecrets();
78+
secrets.curseforgeKey = getCurseforgeKey();
79+
secrets.modrinthKey = getModrinthKey();
80+
secrets.changelog = getChangelog();
81+
secrets.build_number = build_number;
82+
//}
5083

5184
sourceSets {
5285
main
@@ -164,11 +197,6 @@ runs {
164197
}
165198
}
166199

167-
if (build_number.equals("RELEASE"))
168-
version = "${project.mod_version}"
169-
else
170-
version = "${project.mod_version}-${build_number}"
171-
172200
jar {
173201
archiveClassifier.set('slim')
174202
manifest {
@@ -248,47 +276,65 @@ artifacts {
248276
archives javadocJar
249277
}
250278

251-
task publishCurseForge(type: net.darkhax.curseforgegradle.TaskPublishCurseForge) {
252-
dependsOn(tasks.jar)
253-
254-
if(secrets.hasProperty("curseforge_key") && secrets.hasProperty("changelog")) {
255-
apiToken = secrets.curseforge_key
256-
} else if(System.getenv().GITHUB_ACTIONS && System.getenv().CURSEFORGE_KEY_SECRET) {
257-
apiToken = System.getenv().CURSEFORGE_KEY_SECRET
258-
} else {
259-
apiToken = "DUMMY"
279+
// Replace properties in files
280+
processResources {
281+
def expandProps = [
282+
'mod_version' : mod_version,
283+
'group' : project.group, //Else we target the task's group.
284+
'minecraft_version' : minecraft_version,
285+
'mod_name' : mod_name,
286+
'mod_author' : mod_author,
287+
'mod_id' : mod_id,
288+
'license' : license,
289+
'issue_tracker_url' : issue_tracker_url,
290+
'display_url' : display_url,
291+
'description' : project.description,
292+
'neoforge_version' : neoforge_version,
293+
'neoforge_loader_version_range' : neoforge_loader_version_range,
294+
'neoforge_update_json_url' : neoforge_update_json_url,
295+
'java_version' : java_version,
296+
'cyclopscore_version' : cyclopscore_version,
297+
'cyclopscore_version_semver' : cyclopscore_version.replaceAll("-.*\$", ""),
298+
'commoncapabilities_version' : commoncapabilities_version,
299+
'commoncapabilities_version_semver' : commoncapabilities_version.replaceAll("-.*\$", ""),
300+
'integrateddynamics_version' : integrateddynamics_version,
301+
'integrateddynamics_version_semver' : integrateddynamics_version.replaceAll("-.*\$", "")
302+
]
303+
304+
filesMatching(['pack.mcmeta', 'META-INF/mods.toml', 'META-INF/neoforge.mods.toml', 'mixins.*.json']) {
305+
expand expandProps
260306
}
307+
inputs.properties(expandProps)
308+
}
261309

262-
def projectId = "889785" // my project url is http://minecraft.curseforge.com/mc-mods/889785/
263-
264-
def mainFile = upload(projectId, shadowJar)
265-
mainFile.releaseType = 'release'
266-
mainFile.changelogType = "text"
267-
mainFile.changelog = file("resources/changelog/${project.minecraft_version}-${project.version}.txt")
268-
mainFile.addGameVersion(project.minecraft_version)
269-
mainFile.addModLoader("NeoForge")
270-
271-
mainFile.addRequirement('cyclops-core')
272-
mainFile.addRequirement('integrated-dynamics')
310+
task publishCurseForge(type: TaskPublishCurseForge) {
311+
dependsOn(tasks.jar)
312+
apiToken = secrets.curseforgeKey;
313+
def mainFile = upload(project.curseforge_project_id, shadowJar)
314+
mainFile.releaseType = secrets.build_number.equals("RELEASE") ? Constants.RELEASE_TYPE_RELEASE : Constants.RELEASE_TYPE_BETA
315+
mainFile.changelogType = "text"
316+
mainFile.changelog = secrets.changelog
317+
mainFile.addJavaVersion("Java ${project.java_version}")
318+
mainFile.addGameVersion(project.minecraft_version)
319+
mainFile.addModLoader("NeoForge")
320+
321+
mainFile.addRequirement("cyclops-core")
322+
mainFile.addRequirement('integrated-dynamics')
273323
}
274324

275325
modrinth {
276-
if(secrets.modrinth_key) {
277-
token = secrets.modrinth_key
278-
} else if(System.getenv().GITHUB_ACTIONS && System.getenv().MODRINTH_KEY_SECRET) {
279-
token = System.getenv().MODRINTH_KEY_SECRET
280-
} else {
281-
token = "DUMMY"
282-
}
283-
projectId = "uDJkuFRe"
284-
versionNumber = project.minecraft_version + '-' + project.mod_version
285-
versionType = project.release_type
326+
token = secrets.modrinthKey;
327+
projectId = "${modrinth_project_id}"
328+
versionNumber = project.minecraft_version + '-' + project.version
329+
versionName = "${project.version} for NeoForge ${project.minecraft_version}"
330+
versionType = secrets.build_number.equals("RELEASE") ? "release" : "beta"
286331
uploadFile = shadowJar
287332
gameVersions = [ project.minecraft_version ]
288-
changelog = provider { file("resources/changelog/${project.minecraft_version}-${project.version}.txt").getText() }
289-
dependencies { // A special DSL for creating dependencies
290-
required.project "Z9DM0LJ4" // Cyclops Core
291-
required.project "yYzdQHJI" // Integrated Dynamics
333+
changelog = provider { secrets.changelog }
334+
335+
dependencies {
336+
required.project "Z9DM0LJ4" // Cyclops Core
337+
required.project "yYzdQHJI" // Integrated Dynamics
292338
}
293339
}
294340

gradle.properties

Lines changed: 24 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,31 @@
1-
mod_id=integratedscripting
1+
# Project
22
mod_version=1.0.7
3+
group=org.cyclops.integratedscripting
4+
java_version=21
5+
6+
# Common
37
minecraft_version=1.21.1
4-
neoforge_version=21.1.2
8+
mod_name=IntegratedScripting
9+
mod_author=rubensworks (aka kroeser)
10+
mod_id=integratedscripting
11+
license=MIT
12+
github_url=https://github.com/CyclopsMC/IntegratedScripting
13+
issue_tracker_url=https://github.com/CyclopsMC/IntegratedScripting/issues
14+
display_url=https://www.curseforge.com/minecraft/mc-mods/integrated-scripting
15+
description=Create scripts for handling operations in Integrated Dynamics.
16+
fingerprint=bd0353b3e8a2810d60dd584e256e364bc3bedd44
17+
518
parchment_version=2024.07.07
619
parchment_minecraft_version=1.21
20+
curseforge_project_id=889785
21+
modrinth_project_id=uDJkuFRe
22+
23+
# NeoForge
24+
neoforge_version=21.1.2
25+
neoforge_loader_version_range=[4,)
26+
neoforge_update_json_url=https://raw.githubusercontent.com/CyclopsMC/Versions/master/neoforge_update/integrated-scripting.json
27+
28+
# Dependencies
729
cyclopscore_version=1.25.1-627
830
integrateddynamics_version=1.23.2-832
9-
release_type=release
10-
fingerprint=bd0353b3e8a2810d60dd584e256e364bc3bedd44
11-
1231
commoncapabilities_version=2.9.3-147
13-
14-
# Workaround for Spotless bug
15-
# https://github.com/diffplug/spotless/issues/834
16-
org.gradle.jvmargs=--add-exports jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED \
17-
--add-exports jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED \
18-
--add-exports jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED \
19-
--add-exports jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED \
20-
--add-exports jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED
Lines changed: 20 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,43 @@
11
modLoader="javafml"
2-
loaderVersion="[2,)"
3-
issueTrackerURL="https://github.com/CyclopsMC/IntegratedScripting/issues"
4-
displayURL="https://www.curseforge.com/minecraft/mc-mods/integrated-scripting"
5-
license="MIT"
2+
loaderVersion="${neoforge_loader_version_range}"
3+
issueTrackerURL="${issue_tracker_url}"
4+
displayURL="${display_url}"
5+
license="${license}"
66
logoFile="logo.png"
7-
authors="rubensworks (aka kroeser)"
7+
authors="${mod_author}"
88
[[mods]]
9-
modId="integratedscripting"
10-
version="${file.jarVersion}"
11-
displayName="IntegratedScripting"
12-
updateJSONURL="https://raw.githubusercontent.com/CyclopsMC/Versions/master/neoforge_update/integrated-scripting.json"
13-
description='''
14-
Create scripts for handling operations in Integrated Dynamics.
15-
'''
16-
[[dependencies.integratedscripting]]
9+
modId="${mod_id}"
10+
version="${mod_version}"
11+
displayName="${mod_name}"
12+
updateJSONURL="${neoforge_update_json_url}"
13+
description="${description}"
14+
[[dependencies.${mod_id}]]
1715
modId="cyclopscore"
1816
type="required"
19-
versionRange="[1.25.1,)"
17+
versionRange="[${cyclopscore_version_semver},)"
2018
ordering="NONE"
2119
side="BOTH"
22-
[[dependencies.integratedscripting]]
20+
[[dependencies.${mod_id}]]
2321
modId="commoncapabilities"
2422
type="required"
25-
versionRange="[2.9.3,)"
23+
versionRange="[${commoncapabilities_version_semver},)"
2624
ordering="NONE"
2725
side="BOTH"
28-
[[dependencies.integratedscripting]]
26+
[[dependencies.${mod_id}]]
2927
modId="integrateddynamics"
3028
type="required"
31-
versionRange="[1.23.2,)"
29+
versionRange="[${integrateddynamics_version_semver},)"
3230
ordering="NONE"
3331
side="BOTH"
34-
[[dependencies.integratedscripting]]
32+
[[dependencies.${mod_id}]]
3533
modId="neoforge"
3634
type="required"
37-
versionRange="[21.1.2,)"
35+
versionRange="[${neoforge_version},)"
3836
ordering="NONE"
3937
side="BOTH"
40-
[[dependencies.integratedscripting]]
38+
[[dependencies.${mod_id}]]
4139
modId="minecraft"
4240
type="required"
43-
versionRange="[1.21.1,]"
41+
versionRange="[${minecraft_version},]"
4442
ordering="NONE"
4543
side="BOTH"

0 commit comments

Comments
 (0)