Skip to content

Commit

Permalink
Add auto publishing gradle plugin
Browse files Browse the repository at this point in the history
  • Loading branch information
booky10 committed Oct 2, 2024
1 parent a6d37fa commit d210d09
Show file tree
Hide file tree
Showing 4 changed files with 83 additions and 1 deletion.
30 changes: 30 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: Release
on:
workflow_dispatch:

permissions:
contents: write

jobs:
release:
name: Publish Release
runs-on: ubuntu-24.04

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Validate gradle wrapper
uses: gradle/actions/wrapper-validation@v3

- name: Setup java 21
uses: actions/setup-java@v4
with:
java-version: 21
distribution: temurin

- name: Publish plugin
env:
GITHUB_API_TOKEN: ${{ github.token }}
MODRINTH_API_TOKEN: ${{ secrets.MODRINTH_PUBLISH_TOKEN }}
run: ./gradlew publishMods --no-daemon -PnoDryPublish
51 changes: 50 additions & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,14 +1,17 @@
import me.modmuss50.mpp.ModPublishExtension
import me.modmuss50.mpp.PublishModTask

plugins {
id("java-library")
id("maven-publish")

alias(libs.plugins.pluginyml.bukkit)
alias(libs.plugins.runpaper)
alias(libs.plugins.shadow)
alias(libs.plugins.publishing)
}

group = "dev.booky"
version = "1.0.5-SNAPSHOT"

val plugin: Configuration by configurations.creating {
isTransitive = false
Expand Down Expand Up @@ -77,3 +80,49 @@ tasks {
)
}
}

configure<ModPublishExtension> {
val repositoryName = "CloudCraftProjects/CloudProtections"
changelog = "See https://github.com/$repositoryName/releases/tag/v${project.version}"
type = if (project.version.toString().endsWith("-SNAPSHOT")) BETA else STABLE
dryRun = !hasProperty("noDryPublish")

file = tasks.named<Jar>("shadowJar").flatMap { it.archiveFile }
additionalFiles.from(tasks.named<Jar>("sourcesJar"))

github {
accessToken = providers.environmentVariable("GITHUB_API_TOKEN")
.orElse(providers.gradleProperty("ccGithubToken"))

displayName = "${rootProject.name} v${project.version}"

repository = repositoryName
commitish = "master"
tagName = "v${project.version}"

if (project != rootProject) {
parent(rootProject.tasks.named("publishGithub"))
}
}
modrinth {
accessToken = providers.environmentVariable("MODRINTH_API_TOKEN")
.orElse(providers.gradleProperty("ccModrinthToken"))

version = "${project.version}"
displayName = "${rootProject.name} v${project.version}"
modLoaders.add("paper")

projectId = "IeP9peMi"
minecraftVersionRange {
start = rootProject.libs.versions.paperapi.get().split("-")[0]
end = "latest"
}

requires("commandapi", "cloudcore")
}
}

tasks.withType<PublishModTask> {
dependsOn(tasks.named<Jar>("shadowJar"))
dependsOn(tasks.named<Jar>("sourcesJar"))
}
1 change: 1 addition & 0 deletions gradle.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
version=1.0.5
2 changes: 2 additions & 0 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
pluginyml = "0.6.0"
runtask = "2.3.1"
shadow = "8.3.0"
publishing = "0.7.4"

minecraft = "1.21.1"
paperapi = "1.21.1-R0.1-SNAPSHOT"
Expand All @@ -15,6 +16,7 @@ commandapi = "9.5.3"
pluginyml-bukkit = { id = "net.minecrell.plugin-yml.bukkit", version.ref = "pluginyml" }
runpaper = { id = "xyz.jpenilla.run-paper", version.ref = "runtask" }
shadow = { id = "com.gradleup.shadow", version.ref = "shadow" }
publishing = { id = "me.modmuss50.mod-publish-plugin", version.ref = "publishing" }

[libraries]
paperapi = { module = "io.papermc.paper:paper-api", version.ref = "paperapi" }
Expand Down

0 comments on commit d210d09

Please sign in to comment.