From 50cb4bddfb63ad35c93165ac01df098b4dadf757 Mon Sep 17 00:00:00 2001 From: ghostflyby Date: Tue, 30 Sep 2025 10:31:15 +0800 Subject: [PATCH 1/3] ci: migrate to kts and update action workflows --- .github/workflows/build.yml | 12 ++- build.gradle | 76 ------------------- build.gradle.kts | 74 ++++++++++++++++++ .../java/me/towdium/pinin/CharLayoutTest.java | 4 +- 4 files changed, 84 insertions(+), 82 deletions(-) delete mode 100644 build.gradle create mode 100644 build.gradle.kts diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a9aa41c..7b53245 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -7,15 +7,19 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@v5 - name: Set up JDK 1.8 - uses: actions/setup-java@v1 + uses: actions/setup-java@v5 with: java-version: 1.8 - - name: Grant execute permission - run: chmod +x gradlew + distribution: zulu + + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + - name: Build with Gradle run: ./gradlew -Pversion="" build + - name: Upload artifacts uses: actions/upload-artifact@v1 with: diff --git a/build.gradle b/build.gradle deleted file mode 100644 index 5c49758..0000000 --- a/build.gradle +++ /dev/null @@ -1,76 +0,0 @@ -plugins { - id 'java' - id "me.champeau.jmh" version "0.7.3" - id 'com.github.johnrengelman.shadow' version '8.1.1' -} - -repositories { - mavenCentral() -} - -build.dependsOn shadowJar - -version = "1.6.0" -group = "me.towdium.pinin" - -shadowJar { - exclude 'it/unimi/dsi/fastutil/shorts/**' - exclude 'it/unimi/dsi/fastutil/longs/**' - exclude 'it/unimi/dsi/fastutil/floats/**' - exclude 'it/unimi/dsi/fastutil/doubles/**' - exclude 'it/unimi/dsi/fastutil/bytes/**' - exclude 'it/unimi/dsi/fastutil/booleans/**' - exclude 'it/unimi/dsi/fastutil/ints/*Map*' - exclude 'it/unimi/dsi/fastutil/objects/*2Short*Map*' - exclude 'it/unimi/dsi/fastutil/objects/*2Reference*Map*' - exclude 'it/unimi/dsi/fastutil/objects/*2Long*Map*' - exclude 'it/unimi/dsi/fastutil/objects/*2Int*Map*' - exclude 'it/unimi/dsi/fastutil/objects/*2Float*Map*' - exclude 'it/unimi/dsi/fastutil/objects/*2Double*Map*' - exclude 'it/unimi/dsi/fastutil/objects/*2Char*Map*' - exclude 'it/unimi/dsi/fastutil/objects/*2Byte*Map*' - exclude 'it/unimi/dsi/fastutil/objects/*2Boolean*Map*' - exclude 'it/unimi/dsi/fastutil/chars/*2Short*Map*' - exclude 'it/unimi/dsi/fastutil/chars/*2Reference*Map*' - exclude 'it/unimi/dsi/fastutil/chars/*2Long*Map*' - exclude 'it/unimi/dsi/fastutil/chars/*2Int*Map*' - exclude 'it/unimi/dsi/fastutil/chars/*2Float*Map*' - exclude 'it/unimi/dsi/fastutil/chars/*2Double*Map*' - exclude 'it/unimi/dsi/fastutil/chars/*2Char*Map*' - exclude 'it/unimi/dsi/fastutil/chars/*2Byte*Map*' - exclude 'it/unimi/dsi/fastutil/chars/*2Boolean*Map*' - relocate 'it.unimi.dsi.fastutil', 'me.towdium.pinin.fastutil' -} - -test { - useJUnitPlatform() - dependsOn cleanTest - testLogging.showStandardStreams = true -} - -tasks.withType(JavaCompile).configureEach { - options.encoding = "UTF-8" -} - -dependencies { - implementation 'it.unimi.dsi:fastutil:8.3.0' - testImplementation 'org.junit.jupiter:junit-jupiter:5.7.1' - testRuntimeOnly 'org.junit.platform:junit-platform-launcher' - testImplementation 'org.openjdk.jol:jol-core:0.17' - jmhImplementation 'org.openjdk.jmh:jmh-generator-annprocess:1.37' - jmhAnnotationProcessor 'org.openjdk.jmh:jmh-generator-annprocess:1.37' -} - -jmh { - resultFormat = 'JSON' -} - -tasks.compileJmhJava { - sourceCompatibility = '1.8' - targetCompatibility = '1.8' -} - -compileJava { - sourceCompatibility = '1.8' - targetCompatibility = '1.8' -} diff --git a/build.gradle.kts b/build.gradle.kts new file mode 100644 index 0000000..4360c96 --- /dev/null +++ b/build.gradle.kts @@ -0,0 +1,74 @@ +plugins { + java + id("me.champeau.jmh") version "0.7.3" + id("com.gradleup.shadow") version "9.2.0" +} + +group = "me.towdium.pinin" +version = "1.6.0" + +repositories { + mavenCentral() +} + +tasks.build { + dependsOn(tasks.shadowJar) +} + +tasks.shadowJar { + exclude("it/unimi/dsi/fastutil/shorts/**") + exclude("it/unimi/dsi/fastutil/longs/**") + exclude("it/unimi/dsi/fastutil/floats/**") + exclude("it/unimi/dsi/fastutil/doubles/**") + exclude("it/unimi/dsi/fastutil/bytes/**") + exclude("it/unimi/dsi/fastutil/booleans/**") + exclude("it/unimi/dsi/fastutil/ints/*Map*") + exclude("it/unimi/dsi/fastutil/objects/*2Short*Map*") + exclude("it/unimi/dsi/fastutil/objects/*2Reference*Map*") + exclude("it/unimi/dsi/fastutil/objects/*2Long*Map*") + exclude("it/unimi/dsi/fastutil/objects/*2Int*Map*") + exclude("it/unimi/dsi/fastutil/objects/*2Float*Map*") + exclude("it/unimi/dsi/fastutil/objects/*2Double*Map*") + exclude("it/unimi/dsi/fastutil/objects/*2Char*Map*") + exclude("it/unimi/dsi/fastutil/objects/*2Byte*Map*") + exclude("it/unimi/dsi/fastutil/objects/*2Boolean*Map*") + exclude("it/unimi/dsi/fastutil/chars/*2Short*Map*") + exclude("it/unimi/dsi/fastutil/chars/*2Reference*Map*") + exclude("it/unimi/dsi/fastutil/chars/*2Long*Map*") + exclude("it/unimi/dsi/fastutil/chars/*2Int*Map*") + exclude("it/unimi/dsi/fastutil/chars/*2Float*Map*") + exclude("it/unimi/dsi/fastutil/chars/*2Double*Map*") + exclude("it/unimi/dsi/fastutil/chars/*2Char*Map*") + exclude("it/unimi/dsi/fastutil/chars/*2Byte*Map*") + exclude("it/unimi/dsi/fastutil/chars/*2Boolean*Map*") + relocate("it.unimi.dsi.fastutil", "me.towdium.pinin.fastutil") +} + +jmh { + resultFormat = "JSON" +} + +tasks.test { + useJUnitPlatform() + testLogging.showStandardStreams = true +} + +tasks.withType { + options.encoding = "UTF-8" +} + +dependencies { + implementation("it.unimi.dsi:fastutil:8.3.0") + testImplementation("org.junit.jupiter:junit-jupiter:5.7.1") + testRuntimeOnly("org.junit.platform:junit-platform-launcher") + testImplementation("org.openjdk.jol:jol-core:0.17") + jmhImplementation("org.openjdk.jmh:jmh-generator-annprocess:1.37") + jmhAnnotationProcessor("org.openjdk.jmh:jmh-generator-annprocess:1.37") +} + +java { + toolchain { + languageVersion = JavaLanguageVersion.of(8) + targetCompatibility = JavaVersion.VERSION_1_8 + } +} diff --git a/src/test/java/me/towdium/pinin/CharLayoutTest.java b/src/test/java/me/towdium/pinin/CharLayoutTest.java index 960fb37..7e4e27b 100644 --- a/src/test/java/me/towdium/pinin/CharLayoutTest.java +++ b/src/test/java/me/towdium/pinin/CharLayoutTest.java @@ -11,10 +11,10 @@ public class CharLayoutTest { @Test public void layout() { - var intBased = ClassLayout.parseClass(CharInt.class); + ClassLayout intBased = ClassLayout.parseClass(CharInt.class); System.out.println(intBased.toPrintable()); - var charBased = ClassLayout.parseClass(CharChar.class); + ClassLayout charBased = ClassLayout.parseClass(CharChar.class); System.out.println(charBased.toPrintable()); Assertions.assertEquals(intBased.instanceSize(), charBased.instanceSize()); From 521b866fad12034e3d9220cd1167043f7672a9dd Mon Sep 17 00:00:00 2001 From: ghostflyby Date: Tue, 30 Sep 2025 10:32:45 +0800 Subject: [PATCH 2/3] ci: update actions/upload-artifact to v4 --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7b53245..841489e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -21,7 +21,7 @@ jobs: run: ./gradlew -Pversion="" build - name: Upload artifacts - uses: actions/upload-artifact@v1 + uses: actions/upload-artifact@v4 with: name: Jars path: build/libs/ From b96b2e6cd5ed15b1f1bdccc8386a4d5260a12305 Mon Sep 17 00:00:00 2001 From: ghostflyby Date: Tue, 30 Sep 2025 10:43:10 +0800 Subject: [PATCH 3/3] chore: update Java version to 17 and adjust build triggers --- .github/workflows/build.yml | 11 +++++++---- build.gradle.kts | 7 +++---- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 841489e..52e7a53 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,6 +1,9 @@ name: Java CI -on: [push, pull_request] +on: + push: + branches: [ main ] + pull_request: {} jobs: build: @@ -8,10 +11,10 @@ jobs: steps: - uses: actions/checkout@v5 - - name: Set up JDK 1.8 - uses: actions/setup-java@v5 + + - uses: actions/setup-java@v5 with: - java-version: 1.8 + java-version: 17 distribution: zulu - name: Setup Gradle diff --git a/build.gradle.kts b/build.gradle.kts index 4360c96..383ee7b 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -55,6 +55,7 @@ tasks.test { tasks.withType { options.encoding = "UTF-8" + options.release = 8 } dependencies { @@ -67,8 +68,6 @@ dependencies { } java { - toolchain { - languageVersion = JavaLanguageVersion.of(8) - targetCompatibility = JavaVersion.VERSION_1_8 - } + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 }