try a cool github actions workflow for publishing

This commit is contained in:
Ell 2024-11-04 21:36:53 +01:00
parent 8a984911f6
commit 7ac1c3d66d
4 changed files with 65 additions and 4 deletions

View file

@ -3,12 +3,12 @@ jobs:
build: build:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Clone repository - name: Clone Repository
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Setup Java - name: Setup Java
uses: actions/setup-java@v4 uses: actions/setup-java@v4
with: with:
java-version: '17' java-version: '21'
distribution: 'temurin' distribution: 'temurin'
- name: Cache - name: Cache
uses: actions/cache@v4 uses: actions/cache@v4
@ -16,7 +16,7 @@ jobs:
path: | path: |
~/.gradle/caches ~/.gradle/caches
~/.gradle/wrapper ~/.gradle/wrapper
key: ${{ hashFiles('**/build.gradle', '**/gradle-wrapper.properties') }} key: ${{ hashFiles('**/build.gradle', '**/gradle-wrapper.properties', '**/gradle.properties') }}
- name: Build - name: Build
run: | run: |
chmod +x ./gradlew chmod +x ./gradlew

32
.github/workflows/release.yml vendored Normal file
View file

@ -0,0 +1,32 @@
on:
push:
tags: ["*"]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Clone Repository
uses: actions/checkout@v4
- name: Setup Java
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'temurin'
- name: Cache
uses: actions/cache@v4
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ hashFiles('**/build.gradle', '**/gradle-wrapper.properties', '**/gradle.properties') }}
- name: Grab Changelog from Commit Message Body
run: |
changelog=$(echo -e "$MESSAGE" | sed -n '/^$/,$p' | sed '1d')
echo $changelog
echo "CHANGELOG=$changelog" >> $GITHUB_ENV
env:
MESSAGE: ${{ github.event.head_commit.message }}
- name: Release
run: |
chmod +x ./gradlew
./gradlew publishMods --no-daemon

View file

@ -4,6 +4,7 @@ plugins {
id 'idea' id 'idea'
id 'maven-publish' id 'maven-publish'
id 'net.neoforged.gradle.userdev' version '7.0.163' id 'net.neoforged.gradle.userdev' version '7.0.163'
id 'me.modmuss50.mod-publish-plugin' version "0.7.4"
} }
tasks.named('wrapper', Wrapper).configure { tasks.named('wrapper', Wrapper).configure {
@ -166,3 +167,30 @@ idea {
downloadJavadoc = true downloadJavadoc = true
} }
} }
publishMods {
def cfToken = providers.environmentVariable("CF_TOKEN")
def mrToken = providers.environmentVariable("MR_TOKEN")
dryRun = !cfToken.isPresent() || !mrToken.isPresent()
changelog = providers.environmentVariable("COMMIT_MESSAGE").orElse("")
version = mod_version
type = me.modmuss50.mpp.ReleaseType.valueOf(mod_release_state)
file = jar.archiveFile
modLoaders.add("neoforge")
modrinth {
accessToken = mrToken
projectId = "4cJkN3aF"
minecraftVersions.add(minecraft_version)
requires("patchouli")
optional("curios-continuation")
}
curseforge {
accessToken = cfToken
projectId = "306626"
minecraftVersions.add(minecraft_version)
requires("patchouli")
optional("curios-continuation")
}
}

View file

@ -32,6 +32,7 @@ mod_name=NaturesAura
mod_license=MIT mod_license=MIT
# The mod version. See https://semver.org/ # The mod version. See https://semver.org/
mod_version=41.3 mod_version=41.3
mod_release_state=BETA
# The group ID for the mod. It is only important when publishing as an artifact to a Maven repository. # The group ID for the mod. It is only important when publishing as an artifact to a Maven repository.
# This should match the base package used for the mod sources. # This should match the base package used for the mod sources.
# See https://maven.apache.org/guides/mini/guide-naming-conventions.html # See https://maven.apache.org/guides/mini/guide-naming-conventions.html