diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..123dcb7 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,38 @@ +name: Publish Release + +on: + workflow_dispatch: + release: + types: + - published + +permissions: + contents: write + +jobs: + Build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + - name: Set up JDK 20 + uses: actions/setup-java@v3 + with: + distribution: 'adopt' + java-version: 20 + - name: Cache + uses: actions/cache@v3 + with: + path: | + ~/.gradle/caches + ~/.gradle/wrapper + .gradle + key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle.kts*', '**/gradle-wrapper.properties', 'build.gradle.kts') }} + - uses: gradle/wrapper-validation-action@v1 + - run: | + chmod +x gradlew + ./gradlew build publishMod --stacktrace -Porg.gradle.parallel.threads=4 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + MODRINTH_TOKEN: ${{ secrets.MODRINTH_TOKEN }} + CURSEFORGE_TOKEN: ${{ secrets.CURSEFORGE_TOKEN }} \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..719becd --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,3 @@ +### Changes + +- **Unified** publishing tasks using **modpublisher.** \ No newline at end of file diff --git a/build.gradle b/build.gradle index b1e5b09..a1b9b58 100644 --- a/build.gradle +++ b/build.gradle @@ -1,13 +1,24 @@ +class Display { + String name + String loader + String version +} + plugins { id "maven-publish" alias(libs.plugins.architectury.loom) + alias(libs.plugins.modpublisher) } -sourceCompatibility = targetCompatibility = JavaVersion.VERSION_17 +Display display = new Display() group = libs.versions.maven.group.get() -version = "${libs.versions.minecraft.get()}-${libs.versions.mod.get()}" -base.archivesName = "${libs.versions.archives.name.get()}-forge" +version = "${libs.versions.minecraft.get()}-${libs.versions.loader.get()}${libs.versions.mod.get()}" +base.archivesName = "${libs.versions.archives.name.get()}" + +display.name = libs.versions.display.name.get() +display.loader = libs.versions.display.loader.get() +display.version = libs.versions.display.version.get() loom { forge { @@ -65,4 +76,26 @@ publishing { repositories { } +} + +publisher { + apiKeys { + modrinth(System.getenv("MODRINTH_TOKEN")) + curseforge(System.getenv("CURSEFORGE_TOKEN")) + } + + setModrinthID(libs.versions.id.modrinth) + setCurseID(libs.versions.id.curseforge) + + setVersionType("release") + setVersion(project.version.toString()) + setGameVersions("1.20", "1.20.1") + setLoaders("forge", "neoforge") + + setDisplayName("${display.name} ${libs.versions.mod.get()} for ${display.loader} ${display.version}") + + setArtifact(remapJar) + addAdditionalFile(remapSourcesJar) + + setChangelog(file("CHANGELOG.md")) } \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 6611147..5add6f4 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,15 +1,26 @@ [versions] maven-group = "band.kessokuteatime" archives-name = "bounced" -mod = "4.0.1" +mod = "4.1.0" +loader = "forge" minecraft = "1.20.1" yarn = "1.20.1+build.10" forge = "1.20.1-47.2.21" architectury-loom = "1.5-SNAPSHOT" +modpublisher = "2.1.0" splasher = "6.0.3-mc1.20-forge" +# id +id-modrinth = "2mlOZXZr" +id-curseforge = "844458" + +# display +display-name = "Bounced" +display-loader = "Forge" +display-version = "1.20~1.20.1" + [libraries] minecraft = { group = "com.mojang", name = "minecraft", version.ref = "minecraft" } yarn = { group = "net.fabricmc", name = "yarn", version.ref = "yarn" } @@ -19,3 +30,4 @@ splasher = { group = "maven.modrinth", name = "splasher", version.ref = "splashe [plugins] architectury-loom = { id = "dev.architectury.loom", version.ref = "architectury-loom" } +modpublisher = { id = "com.hypherionmc.modutils.modpublisher", version.ref = "modpublisher" } diff --git a/settings.gradle b/settings.gradle index 72f5431..574ff24 100644 --- a/settings.gradle +++ b/settings.gradle @@ -3,6 +3,7 @@ pluginManagement { maven { url = "https://maven.fabricmc.net/" } maven { url = "https://maven.architectury.dev/" } maven { url = "https://maven.minecraftforge.net/" } + maven { url = "https://maven.firstdark.dev/releases" } mavenCentral() gradlePluginPortal() }