Skip to content

Commit 971ee2f

Browse files
chore: release prep (better pipelines)
1 parent 9fad95e commit 971ee2f

8 files changed

Lines changed: 120 additions & 147 deletions

File tree

.github/workflows/build.yml

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,23 +7,17 @@ on:
77
jobs:
88
build:
99
runs-on: ubuntu-latest
10-
if: |
11-
!contains(github.event.head_commit.message, '[ciskip]')
1210
steps:
1311
- uses: actions/checkout@v3
14-
- name: Set up JDK
12+
- name: Set up JDK 17
1513
uses: actions/setup-java@v2
1614
with:
17-
distribution: 'temurin'
1815
java-version: '17'
19-
- name: Build with Gradle
20-
uses: gradle/gradle-build-action@v2
21-
with:
22-
arguments: build
23-
- name: Publish to Maven
16+
distribution: 'temurin'
17+
- name: Setup Gradle
2418
uses: gradle/gradle-build-action@v2
25-
env:
26-
SNAPSHOT: true
27-
SAPS_TOKEN: ${{ secrets.SAPS_TOKEN }}
2819
with:
29-
arguments: publish
20+
cache-read-only: false
21+
gradle-home-cache-cleanup: true
22+
- name: Build & Publish to Github Maven
23+
run: ./gradlew build --no-daemon

.github/workflows/release.yml

Lines changed: 8 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -8,30 +8,19 @@ on:
88
jobs:
99
build:
1010
runs-on: ubuntu-latest
11-
if: |
12-
!contains(github.event.head_commit.message, '[ciskip]')
1311
steps:
1412
- uses: actions/checkout@v3
15-
- name: Set up JDK
13+
- name: Set up JDK 17
1614
uses: actions/setup-java@v2
1715
with:
18-
distribution: 'temurin'
1916
java-version: '17'
20-
- name: Build with Gradle
21-
uses: gradle/gradle-build-action@v2
22-
with:
23-
arguments: build
24-
- name: Publish to Maven & Curseforge
17+
distribution: 'temurin'
18+
- name: Setup Gradle
2519
uses: gradle/gradle-build-action@v2
20+
- name: Build & Publish
21+
run: ./gradlew build publish publishMods --no-daemon
2622
env:
2723
SAPS_TOKEN: ${{ secrets.SAPS_TOKEN }}
28-
CURSEFORGE_KEY: ${{ secrets.CURSEFORGE_KEY }}
29-
with:
30-
arguments: publish curseforgePublish
31-
- name: Release to Github
32-
uses: "softprops/action-gh-release@v1"
33-
with:
34-
body_path: "./CHANGELOG.md"
35-
prerelease: false
36-
files: |
37-
./+(forge|fabric)/build/libs/*+@(mc+([0-9]).+([0-9]).+([0-9])).jar
24+
MODRINTH_TOKEN: ${{ secrets.MODRINTH_TOKEN }}
25+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
26+
CURSE_TOKEN: ${{ secrets.CURSEFORGE_KEY }}

CHANGELOG.md

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
1-
# Accelerated Decay Changelog
2-
3-
## [1.0.0]
1+
## [1.0.1]
42

53
### Changed
64

7-
- Updated to 1.19.2
5+
- Improved multi-threading safety and performance thanks to [(#7)](https://github.com/ErrorMikey/AcceleratedDecay/pull/7) [BumbleTree](https://github.com/BumbleTree)

build.gradle

Lines changed: 87 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
plugins {
22
id "architectury-plugin" version "3.4-SNAPSHOT"
33
id "dev.architectury.loom" version "0.12.0-SNAPSHOT" apply false
4+
id "me.modmuss50.mod-publish-plugin" version "0.3.5"
45
}
56

67
architectury {
@@ -9,6 +10,7 @@ architectury {
910

1011
subprojects {
1112
apply plugin: "dev.architectury.loom"
13+
apply plugin: "maven-publish"
1214

1315
loom {
1416
silentMojangMappingsLicense()
@@ -21,25 +23,31 @@ subprojects {
2123
// The following line declares the yarn mappings you may select this one as well.
2224
// mappings "net.fabricmc:yarn:1.18.2+build.4:v2"
2325
}
26+
27+
publishing {
28+
repositories {
29+
if (providers.environmentVariable("SAPS_TOKEN").isPresent()) {
30+
maven {
31+
url "https://maven.saps.dev/${providers.environmentVariable("SNAPSHOT").map { "snapshots" }.getOrElse("releases")}"
32+
credentials {
33+
username = "errormikey"
34+
password = "${providers.environmentVariable("SAPS_TOKEN").get()}"
35+
}
36+
}
37+
}
38+
}
39+
}
2440
}
2541

2642
allprojects {
2743
apply plugin: "java"
2844
apply plugin: "architectury-plugin"
2945
apply plugin: "maven-publish"
3046

31-
ext.ENV = System.getenv()
32-
ext.SNAPSHOT = ENV.SNAPSHOT != null && (ENV.SNAPSHOT == "true" || ENV.SNAPSHOT == true)
33-
ext.MAVEN_URL = "https://maven.saps.dev/${SNAPSHOT ? "snapshots" : "releases"}"
34-
ext.MAVEN_VERSION = rootProject.version + (SNAPSHOT ? "-SNAPSHOT" : "")
35-
3647
archivesBaseName = rootProject.archives_base_name
3748
version = "${rootProject.mod_version}+mc${rootProject.minecraft_version}"
3849
group = rootProject.maven_group
3950

40-
repositories {
41-
}
42-
4351
tasks.withType(JavaCompile) {
4452
options.encoding = "UTF-8"
4553
options.release = 17
@@ -50,4 +58,74 @@ allprojects {
5058
}
5159
}
5260

53-
task curseforgePublish
61+
publishMods {
62+
dryRun = providers.environmentVariable("CURSE_TOKEN").getOrNull() == null
63+
changelog = file("./CHANGELOG.md").text
64+
version = "${mod_version}"
65+
type = STABLE
66+
67+
def fabricOptions = publishOptions {
68+
file = project.provider { project(":fabric").tasks.remapJar }.flatMap { it.archiveFile }
69+
displayName = "${project.name} Fabric ${mod_version}+mc${minecraft_version}"
70+
modLoaders.add("fabric")
71+
}
72+
73+
def forgeOptions = publishOptions {
74+
file = project.provider { project(":forge").tasks.remapJar }.flatMap { it.archiveFile }
75+
displayName = "${project.name} Forge ${mod_version}+mc${minecraft_version}"
76+
modLoaders.add("neoforge")
77+
}
78+
79+
def curseForgeOptions = curseforgeOptions {
80+
accessToken = providers.environmentVariable("CURSE_TOKEN")
81+
projectId = "${curseforge_id}"
82+
minecraftVersions.add("${minecraft_version}")
83+
}
84+
85+
def modrinthOptions = modrinthOptions {
86+
accessToken = providers.environmentVariable("MODRINTH_TOKEN")
87+
projectId = "${modrinth_id}"
88+
minecraftVersions.add("${minecraft_version}")
89+
}
90+
91+
curseforge("curseforgeFabric") {
92+
from(curseForgeOptions, fabricOptions)
93+
requires {
94+
slug = "architectury-api"
95+
slug = "fabric-api"
96+
}
97+
}
98+
99+
curseforge("curseforgeForge") {
100+
from(curseForgeOptions, forgeOptions)
101+
requires {
102+
slug = "architectury-api"
103+
}
104+
}
105+
106+
modrinth("modrinthFabric") {
107+
from(modrinthOptions, fabricOptions)
108+
requires {
109+
slug = "architectury-api"
110+
slug = "fabric-api"
111+
}
112+
}
113+
114+
modrinth("modrinthForge") {
115+
from(modrinthOptions, forgeOptions)
116+
requires {
117+
slug = "architectury-api"
118+
}
119+
}
120+
121+
github {
122+
file = project.provider { project(":forge").tasks.remapJar }.flatMap { it.archiveFile }
123+
additionalFiles.from project.provider { project(":fabric").tasks.remapJar }.flatMap { it.archiveFile }
124+
125+
repository = "${project.github_repo}"
126+
accessToken = providers.environmentVariable("GITHUB_TOKEN")
127+
commitish = providers.environmentVariable("GITHUB_SHA").orElse("dryRun")
128+
tagName = providers.environmentVariable("GITHUB_REF_NAME").orElse("dryRun")
129+
}
130+
}
131+

common/build.gradle

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -17,20 +17,6 @@ publishing {
1717
mavenCommon(MavenPublication) {
1818
artifactId = "${rootProject.archivesBaseName}-${project.name}"
1919
from components.java
20-
21-
version = MAVEN_VERSION
22-
}
23-
}
24-
25-
repositories {
26-
if (ENV.SAPS_TOKEN) {
27-
maven {
28-
url MAVEN_URL
29-
credentials {
30-
username = "errormikey"
31-
password = "${ENV.SAPS_TOKEN}"
32-
}
33-
}
3420
}
3521
}
3622
}

fabric/build.gradle

Lines changed: 3 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
plugins {
22
id "com.github.johnrengelman.shadow" version "7.1.2"
3-
id "com.matthewprenger.cursegradle" version "1.4.0"
43
}
54

65
architectury {
@@ -42,19 +41,19 @@ shadowJar {
4241
exclude "architectury.common.json"
4342

4443
configurations = [project.configurations.shadowCommon]
45-
classifier "dev-shadow"
44+
setArchiveClassifier "dev-shadow"
4645
}
4746

4847
remapJar {
4948
injectAccessWidener = true
5049
input.set shadowJar.archiveFile
5150
dependsOn shadowJar
52-
classifier null
51+
setArchiveClassifier null
5352
setArchivesBaseName("${rootProject.archivesBaseName}-${project.name}") // adds fabric to the maven and curse name
5453
}
5554

5655
jar {
57-
classifier "dev"
56+
setArchiveClassifier "dev"
5857
}
5958

6059
sourcesJar {
@@ -74,41 +73,7 @@ publishing {
7473
mavenFabric(MavenPublication) {
7574
artifactId = "${rootProject.archivesBaseName}-${project.name}" // adds fabric or forge to the maven name
7675
from components.java
77-
78-
version = MAVEN_VERSION
79-
}
80-
}
81-
82-
repositories {
83-
if (ENV.SAPS_TOKEN) {
84-
maven {
85-
url MAVEN_URL
86-
credentials {
87-
username = "errormikey"
88-
password = "${ENV.SAPS_TOKEN}"
89-
}
90-
}
91-
}
92-
}
93-
}
94-
95-
if (ENV.CURSEFORGE_KEY) {
96-
curseforge {
97-
apiKey = ENV.CURSEFORGE_KEY
98-
project {
99-
id = rootProject.curseforge_id
100-
releaseType = "beta"
101-
addGameVersion "Fabric"
102-
addGameVersion "Java 17"
103-
addGameVersion rootProject.minecraft_version
104-
mainArtifact(remapJar.archiveFile)
105-
relations {
106-
requiredDependency("architectury-api")
107-
}
108-
changelog = file("./../CHANGELOG.md")
109-
changelogType = 'markdown'
11076
}
11177
}
11278
}
11379

114-
rootProject.tasks.curseforgePublish.dependsOn tasks.curseforge

0 commit comments

Comments
 (0)