From e65846cb0b371bf00e42d051c4fd289f4353291c Mon Sep 17 00:00:00 2001 From: LambdAurora Date: Tue, 23 Jul 2024 23:06:56 +0200 Subject: [PATCH] Modernize setup. --- .github/workflows/gradle_build.yml | 20 ++++--- .github/workflows/maven_publish.yml | 9 ++-- .github/workflows/release.yml | 14 ++--- build.gradle | 82 ++++++++++++++--------------- 4 files changed, 63 insertions(+), 62 deletions(-) diff --git a/.github/workflows/gradle_build.yml b/.github/workflows/gradle_build.yml index a35a17de..97c8d43b 100644 --- a/.github/workflows/gradle_build.yml +++ b/.github/workflows/gradle_build.yml @@ -1,9 +1,6 @@ -name: Gradle Build +name: "Gradle Build" -on: - workflow_dispatch: - push: - pull_request: +on: [push, pull_request] jobs: build: @@ -12,24 +9,25 @@ jobs: java: [ 17, 21 ] runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - name: "Checkout" + uses: actions/checkout@v4 with: fetch-depth: 0 - - name: Set up JDK ${{ matrix.java }} + - name: "Set up Java" uses: actions/setup-java@v4 with: java-version: ${{ matrix.java }} distribution: 'temurin' - cache: 'gradle' - - name: Set up Gradle + - name: "Set up Gradle" uses: gradle/actions/setup-gradle@v3 with: cache-read-only: ${{ !startsWith(github.ref, 'refs/heads/1.') && !startsWith(github.ref, 'refs/heads/dev/') && !startsWith(github.ref, 'refs/tags/v') }} - - name: Build with Gradle + - name: "Build with Gradle" run: ./gradlew build --parallel --stacktrace - - uses: actions/upload-artifact@v4 + - name: "Upload artifacts" + uses: actions/upload-artifact@v4 with: name: Artifacts_j${{ matrix.java }} path: ./build/libs/ diff --git a/.github/workflows/maven_publish.yml b/.github/workflows/maven_publish.yml index 1595cdac..c0dda328 100755 --- a/.github/workflows/maven_publish.yml +++ b/.github/workflows/maven_publish.yml @@ -9,20 +9,21 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - name: "Checkout" + uses: actions/checkout@v4 with: fetch-depth: 0 - - name: Set up JDK 17 + - name: "Set up Java" uses: actions/setup-java@v4 with: java-version: 17 distribution: 'temurin' - - name: Set up Gradle + - name: "Set up Gradle" uses: gradle/actions/setup-gradle@v3 # The USERNAME and PASSWORD need to correspond to the credentials environment variables used in # the publishing section of your build.gradle - - name: Publish to GitHub Packages and other Mavens + - name: "Publish to GitHub Packages and other Mavens" run: ./gradlew publish --parallel --stacktrace env: BRANCH_NAME: ${{ github.ref }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 861f0e9b..94bf84af 100755 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,4 +1,4 @@ -name: Release +name: "Release" on: release: @@ -9,24 +9,26 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - name: "Checkout" + uses: actions/checkout@v4 with: fetch-depth: 0 - - name: Set up JDK 17 + - name: "Set up Java" uses: actions/setup-java@v4 with: java-version: 17 distribution: 'temurin' - - name: Set up Gradle + - name: "Set up Gradle" uses: gradle/actions/setup-gradle@v3 - - name: Build with Gradle + - name: "Build with Gradle" run: ./gradlew build modrinth curseforge --parallel --stacktrace env: MODRINTH_TOKEN: ${{ secrets.MODRINTH_TOKEN }} CURSEFORGE_TOKEN: ${{ secrets.CURSEFORGE_TOKEN }} - - uses: actions/upload-artifact@v4 + - name: "Upload artifacts" + uses: actions/upload-artifact@v4 with: name: Artifacts path: ./build/libs/ diff --git a/build.gradle b/build.gradle index c6645ba1..83f47d58 100644 --- a/build.gradle +++ b/build.gradle @@ -1,11 +1,11 @@ plugins { - id 'fabric-loom' version '1.4.+' - id 'dev.yumi.gradle.licenser' version '1.1.+' - id 'java-library' - id 'maven-publish' - id 'com.github.johnrengelman.shadow' version '8.1.1' - id 'com.modrinth.minotaur' version '2.+' - id 'net.darkhax.curseforgegradle' version '1.1.+' + id "fabric-loom" version "1.4.+" + id "dev.yumi.gradle.licenser" version "1.1.+" + id "java-library" + id "maven-publish" + id "com.github.johnrengelman.shadow" version "8.1.1" + id "com.modrinth.minotaur" version "2.+" + id "net.darkhax.curseforgegradle" version "1.1.+" } import com.modrinth.minotaur.dependencies.ModDependency @@ -18,22 +18,22 @@ base.archivesName = project.archives_base_name // This field defines the Java version your mod target. def targetJavaVersion = 17 -if (!(System.getenv("CURSEFORGE_TOKEN") || System.getenv("MODRINTH_TOKEN"))) { +if (!(System.getenv("CURSEFORGE_TOKEN") || System.getenv("MODRINTH_TOKEN") || System.getenv("LDL_MAVEN"))) { version += "-local" } logger.lifecycle("Preparing version ${version}...") boolean isMCVersionNonRelease() { return project.minecraft_version.matches('^\\d\\dw\\d\\d[a-z]$') - || project.minecraft_version.matches('\\d+\\.\\d+-(pre|rc)(\\d+)') + || project.minecraft_version.matches("\\d+\\.\\d+-(pre|rc)(\\d+)") } String getMCVersionString() { if (isMCVersionNonRelease()) { return project.minecraft_version } - def version = project.minecraft_version.split('\\.') - return version[0] + '.' + version[1] + def version = project.minecraft_version.split("\\.") + return version[0] + "." + version[1] } String getVersionType() { @@ -50,27 +50,27 @@ String parseReadme() { def excludeRegex = /(?m)(.|\n)*?/ def linkRegex = /!\[([A-z_ ]+)]\((images\/[A-z.\/_]+)\)/ - def readme = (String) file('README.md').text - readme = readme.replaceAll(excludeRegex, '') - readme = readme.replaceAll(linkRegex, '![$1](https://raw.githubusercontent.com/LambdAurora/LambDynamicLights/1.19/$2)') + def readme = (String) file("README.md").text + readme = readme.replaceAll(excludeRegex, "") + readme = readme.replaceAll(linkRegex, "![\$1](https://raw.githubusercontent.com/LambdAurora/LambDynamicLights/1.19/\$2)") return readme } String fetchChangelog() { - def changelogText = file('CHANGELOG.md').text - def regexVersion = ((String) project.mod_version).replaceAll('\\.', /\\./).replaceAll('\\+', '\\+') + def changelogText = file("CHANGELOG.md").text + def regexVersion = ((String) project.mod_version).replaceAll("\\.", /\\./).replaceAll("\\+", "\\+") def changelogRegex = ~"###? ${regexVersion}\\n\\n(( *- .+\\n)+)" def matcher = changelogText =~ changelogRegex if (matcher.find()) { def changelogContent = matcher.group(1) - def changelogLines = changelogText.split('\n') - def linkRefRegex = ~'^\\[([A-z\\d _\\-/+.]+)]: ' + def changelogLines = changelogText.split("\n") + def linkRefRegex = ~"^\\[([A-z\\d _\\-/+.]+)]: " for (int i = changelogLines.length - 1; i > 0; i--) { def line = changelogLines[i] if ((line =~ linkRefRegex).find()) - changelogContent += '\n' + line + changelogContent += "\n" + line else break } return changelogContent @@ -87,16 +87,16 @@ repositories { url "https://maven.quiltmc.org/repository/release" } maven { - name 'Terraformers' - url 'https://maven.terraformersmc.com/releases/' + name "Terraformers" + url "https://maven.terraformersmc.com/releases/" } maven { - name 'Gegy' - url 'https://maven.gegy.dev' + name "Gegy" + url "https://maven.gegy.dev" } maven { - name 'grondag' - url 'https://maven.dblsaiko.net/' + name "grondag" + url "https://maven.dblsaiko.net/" } exclusiveContent { forRepository { @@ -137,8 +137,8 @@ dependencies { modRuntimeOnly "maven.modrinth:sodium:${project.sodium_version}" - shadow 'com.electronwill.night-config:core:3.6.6' - shadow 'com.electronwill.night-config:toml:3.6.6' + shadow "com.electronwill.night-config:core:3.6.6" + shadow "com.electronwill.night-config:toml:3.6.6" } java { @@ -149,36 +149,36 @@ java { } tasks.withType(JavaCompile).configureEach { - it.options.encoding = 'UTF-8' + it.options.encoding = "UTF-8" it.options.release.set(targetJavaVersion) } processResources { - inputs.property 'version', project.version + inputs.property "version", project.version - filesMatching('fabric.mod.json') { - expand 'version': project.version + filesMatching("fabric.mod.json") { + expand "version": project.version } } jar { - from('LICENSE') { + from("LICENSE") { rename { "${it}_${base.archivesName}" } } } license { - rule file('HEADER') + rule file("HEADER") } shadowJar { dependsOn jar configurations = [project.configurations.shadow] destinationDirectory.set(file("${project.layout.buildDirectory.get()}/devlibs")) - archiveClassifier.set('dev') + archiveClassifier.set("dev") - relocate 'com.electronwill.nightconfig', 'dev.lambdaurora.lambdynlights.shadow.nightconfig' + relocate "com.electronwill.nightconfig", "dev.lambdaurora.lambdynlights.shadow.nightconfig" } remapJar.dependsOn(shadowJar) @@ -207,7 +207,7 @@ modrinth { } tasks.modrinth.dependsOn(tasks.modrinthSyncBody) -tasks.register('curseforge', TaskPublishCurseForge) { +tasks.register("curseforge", TaskPublishCurseForge) { setGroup("publishing") if (System.getenv("CURSEFORGE_TOKEN")) { @@ -258,18 +258,18 @@ publishing { repositories { mavenLocal() maven { - name = 'BuildDirLocal' + name = "BuildDirLocal" url = "${project.layout.buildDirectory.get()}/repo" } - def ldlMaven = System.getenv('LDL_MAVEN') + def ldlMaven = System.getenv("LDL_MAVEN") if (ldlMaven) { maven { - name = 'LambDynamicLightsMaven' + name = "LambDynamicLightsMaven" url = uri(ldlMaven) credentials { - username = project.findProperty('gpr.user') ?: System.getenv('MAVEN_USERNAME') - password = project.findProperty('gpr.key') ?: System.getenv('MAVEN_PASSWORD') + username = project.findProperty("gpr.user") ?: System.getenv("MAVEN_USERNAME") + password = project.findProperty("gpr.key") ?: System.getenv("MAVEN_PASSWORD") } } }