diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index 8163253..a010ffe 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -9,83 +9,59 @@ on: jobs: linux-amd64: runs-on: ubuntu-latest + steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 with: submodules: true - - name: Set up JDK 1.8 - uses: actions/setup-java@v1 - with: - java-version: 1.8 - - name: Grant execute permission for gradlew - run: chmod +x gradlew - - name: Build with Gradle - uses: eskatos/gradle-command-action@v1 + + - name: Set up JDK 17 + uses: actions/setup-java@v4 with: - arguments: build + distribution: temurin + java-version: 17 + + - run: chmod +x gradlew + + - name: Build natives + publish + run: ./gradlew publish env: CC: gcc ci: true - - uses: actions/upload-artifact@v3 + PNX_REPO_USERNAME: ${{ secrets.PNX_REPO_USERNAME }} + PNX_REPO_PASSWORD: ${{ secrets.PNX_REPO_PASSWORD }} + + - uses: actions/upload-artifact@v4 with: name: Linux-amd64 - path: | - ./tmp/compiled/linux/amd64/libdeflate_jni.so - - uses: actions/upload-artifact@v3 - with: - name: Interface jar - path: | - ./libdeflate-java-core/build/libs/libdeflate-java-core-*.jar + path: ./tmp/compiled/linux/amd64/libdeflate_jni.so + + windows-amd64: runs-on: windows-latest + steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 with: submodules: true - - name: Set up JDK 1.8 - uses: actions/setup-java@v1 + + - name: Set up JDK 17 + uses: actions/setup-java@v4 with: - java-version: 1.8 + distribution: temurin + java-version: 17 + - name: Set up MSVC uses: ilammy/msvc-dev-cmd@v1 with: arch: amd64 - - name: Build with Gradle - uses: eskatos/gradle-command-action@v1 - with: - arguments: compileNatives + + - name: Build natives + run: ./gradlew compileNatives env: MSVC: true - - uses: actions/upload-artifact@v3 - with: - name: Windows-amd64 - path: | - ./tmp/compiled/windows/amd64/libdeflate_jni.dll - build-full-jar: - needs: [linux-amd64, windows-amd64] - runs-on: ubuntu-latest - steps: - - name: Download Linux-amd64 - uses: actions/download-artifact@v3 - with: - name: Linux-amd64 - path: ./linux/amd64 - - name: Download Windows-amd64 - uses: actions/download-artifact@v3 + + - uses: actions/upload-artifact@v4 with: name: Windows-amd64 - path: ./windows/amd64 - - name: Download Interface jar - uses: actions/download-artifact@v3 - with: - name: Interface jar - path: ./ - - name: Build full jar - run: | - jar uf libdeflate-java-core-0.0.3-PNX.jar ./linux ./windows - mv libdeflate-java-core-0.0.3-PNX.jar libdeflate-java-0.0.3-PNX.jar - - uses: actions/upload-artifact@v3 - with: - name: Full jar - path: | - ./libdeflate-java-0.0.3-PNX.jar + path: ./tmp/compiled/windows/amd64/libdeflate_jni.dll diff --git a/build.gradle.kts b/build.gradle.kts index 476f115..8b8546e 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,12 +1,46 @@ plugins { java + `maven-publish` } -group = "cn.powernukkitx" -version = "0.0.3-PNX" +group = "org.powernukkitx" +version = "0.0.3.PNX-SNAPSHOT" allprojects { repositories { mavenCentral() } -} \ No newline at end of file +} + +java { + withSourcesJar() + withJavadocJar() +} + +publishing { + publications { + create("maven") { + from(components["java"]) + + groupId = "org.powernukkitx" + artifactId = "libdeflate-java" + version = "0.0.3.PNX-SNAPSHOT" + } + } + + repositories { + maven { + name = "pnx" + url = uri("https://repo.powernukkitx.org/releases") + + credentials { + username = providers.gradleProperty("pnxUsername") + .orElse(providers.environmentVariable("PNX_REPO_USERNAME")) + .orNull + password = providers.gradleProperty("pnxPassword") + .orElse(providers.environmentVariable("PNX_REPO_PASSWORD")) + .orNull + } + } + } +}