added publish task

This commit is contained in:
Ell 2024-11-22 13:23:29 +01:00
parent 3d5f592647
commit db97e2dd25
4 changed files with 70 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
@ -25,4 +25,4 @@ jobs:
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: Mod Jar name: Mod Jar
path: build/libs/**.jar path: build/libs/**.jar

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

@ -0,0 +1,39 @@
on:
push:
tags: ["*"]
jobs:
release:
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 -e "$changelog"
{
echo 'CHANGELOG<<EOF'
echo -e "$changelog"
echo EOF
} >> "$GITHUB_ENV"
env:
MESSAGE: ${{ github.event.head_commit.message }}
- name: Release
run: |
chmod +x ./gradlew
./gradlew publishMods --no-daemon
env:
MR_TOKEN: ${{ secrets.MR_TOKEN }}
CF_TOKEN: ${{ secrets.CF_TOKEN }}

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 {
@ -171,3 +172,28 @@ 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("CHANGELOG").orElse("")
version = mod_version
type = me.modmuss50.mpp.ReleaseType.valueOf(mod_release_state)
file = tasks.jarJar.archiveFile
modLoaders.add("neoforge")
modrinth {
accessToken = mrToken
projectId = "XExdLWCQ"
minecraftVersions.add(minecraft_version)
optional("jei")
}
curseforge {
accessToken = cfToken
projectId = "376737"
minecraftVersions.add(minecraft_version)
optional("jei")
}
}

View file

@ -35,6 +35,7 @@ mod_name=PrettyPipes
mod_license=MIT mod_license=MIT
# The mod version. See https://semver.org/ # The mod version. See https://semver.org/
mod_version=1.18.0 mod_version=1.18.0
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