Skip to content

Commit

Permalink
Automatic Publishing
Browse files Browse the repository at this point in the history
  • Loading branch information
2No2Name committed Jan 16, 2025
1 parent b805abd commit ada11b3
Show file tree
Hide file tree
Showing 4 changed files with 156 additions and 2 deletions.
51 changes: 51 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
name: Publish Release

on:
workflow_dispatch:
inputs:
releaseType:
type: choice
description: Release Type
options:
- stable
- beta
- alpha

jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4

- name: Setup Java
run: echo "JAVA_HOME=$JAVA_HOME_21_X64" >> "$GITHUB_ENV"

- name: Loom Cache
uses: actions/cache@v4
with:
path: "**/.gradle/loom-cache"
key: "${{ runner.os }}-gradle-loom-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}"
restore-keys: "${{ runner.os }}-gradle-loom-"
- name: ModDevGradle Cache
uses: actions/cache@v4
with:
path: "**/.gradle/repositories"
key: "${{ runner.os }}-gradle-mdg-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}"
restore-keys: "${{ runner.os }}-gradle-mdg-"

- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
with:
gradle-home-cache-cleanup: true
cache-read-only: true

- name: Validate Gradle Wrapper Integrity
uses: gradle/wrapper-validation-action@v2

- name: Build & Publish
env:
RELEASE_TYPE: ${{ inputs.releaseType }}
MODRINTH_API_KEY: ${{ secrets.MODRINTH_API_KEY }}
CURSEFORGE_API_KEY: ${{ secrets.CURSEFORGE_API_KEY }}
run: ./gradlew publishMods
15 changes: 15 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
BugFixerUpper 1.0.1 adds a few new features:

## Additions:
### Misc:
- Save vehicle passengers at their actual position (MC-263030).
- Parrot mob spawner blocks treat all air types equally (MC-232359).
- Curse of vanishing does not apply to items inside donkey/mule/llama chest slots.

### Structure blocks:
- Structure blocks load paintings at the correct position (Thanks to BluSpring) (MC-102223).
- Structure blocks with combined mirror and rotation place paintings and item frames with the correct rotation.

### Tick freeze:
- Prevent players from unfreezing other passengers in multi-seat vehicles during tick freeze (MC-268358).

87 changes: 86 additions & 1 deletion build.gradle
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
import me.modmuss50.mpp.ReleaseType

plugins {
id 'fabric-loom' version '1.9-SNAPSHOT'
id 'maven-publish'
id "me.modmuss50.mod-publish-plugin" version "0.8.3"
}

version = project.mod_version
Expand Down Expand Up @@ -37,7 +40,7 @@ dependencies {
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}"
// modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_mod_version}"

}

Expand Down Expand Up @@ -85,4 +88,86 @@ publishing {
// The repositories here will be used for publishing your artifact, not for
// retrieving dependencies.
}
}

publishMods {
changelog = rootProject.file("CHANGELOG.md").getText().trim()
type = getReleaseType()
file = remapJar.archiveFile

def mod_version = "mc${project.minecraft_version}-${project.mod_version}"
def fabric_mod_version = mod_version + "-fabric"
def fabric_suffix = "for Fabric"
def displayNamePrefix = project.property('mod_name').toString()

// CurseForge options used by both Fabric and Forge
def cfOptions = curseforgeOptions {
accessToken = providers.environmentVariable("CURSEFORGE_TOKEN")
projectId = "1179548"

if (project.hasProperty('minecraft_version_range_start') && project.hasProperty('minecraft_version_range_end')) {
minecraftVersionRange {
start = project.property('minecraft_version_range_start').toString()
end = project.property('minecraft_version_range_end').toString()
}
} else {
minecraftVersions.add(project.property('minecraft_version').toString())
}

displayNamePrefix = displayNamePrefix + " " + mod_version
}

// Modrinth options used by both Fabric and Forge
def mrOptions = modrinthOptions {
accessToken = providers.environmentVariable("MODRINTH_TOKEN")
projectId = "gRMQvlnJ"


if (project.hasProperty('minecraft_version_range_start') && project.hasProperty('minecraft_version_range_end')) {
minecraftVersionRange {
start = project.property('minecraft_version_range_start').toString()
end = project.property('minecraft_version_range_end').toString()
}
} else {
minecraftVersions.add(project.property('minecraft_version').toString())
}

displayNamePrefix = displayNamePrefix + " " + project.property('minecraft_version').toString()

}

// Fabric specific options for CurseForge
curseforge("curseforgeFabric") {
from cfOptions
modLoaders.add("fabric")
modLoaders.add("quilt")
version = fabric_mod_version
displayName = displayNamePrefix + " " + fabric_suffix
}

// Fabric specific options for Modrinth
modrinth("modrinthFabric") {
from mrOptions
modLoaders.add("fabric")
modLoaders.add("quilt")
version = fabric_mod_version
displayName = displayNamePrefix + " " + fabric_suffix
}
}

def getReleaseType() {
def releaseType = System.getenv("RELEASE_TYPE")
switch (releaseType) {
case "alpha":
return ReleaseType.ALPHA
case "beta":
return ReleaseType.BETA
case "stable":
return ReleaseType.STABLE
default:
if (releaseType != null) {
throw new IllegalArgumentException("Release type must be alpha, beta or stable!")
}
return ReleaseType.STABLE
}
}
5 changes: 4 additions & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,15 @@ org.gradle.parallel=true
# Fabric Properties
# check these on https://fabricmc.net/develop
minecraft_version=1.21.4
#minecraft_version_range_start=1.21.1
#minecraft_version_range_end=1.21.4
loader_version=0.16.10

# Mod Properties
mod_version=1.0.0
mod_version=1.0.1
maven_group=no2.bugfixerupper
archives_base_name=bug-fixer-upper
mod_name=BugFixerUpper

# Dependencies
#fabric_version=0.114.3+1.21.4

0 comments on commit ada11b3

Please sign in to comment.