diff --git a/.github/workflows/desktop.yml b/.github/workflows/desktop.yml index a84d1732a..24dd91db6 100644 --- a/.github/workflows/desktop.yml +++ b/.github/workflows/desktop.yml @@ -37,6 +37,59 @@ jobs: name: oonimkall-linux.jar path: ./DESKTOP/oonimkall.jar + publish_linux_jar_maven: + runs-on: ubuntu-22.04 + needs: + - build_linux_desktop_jar + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Set up JDK + uses: actions/setup-java@v4 + with: + java-version: '17' + distribution: 'temurin' + cache: 'maven' + server-id: central + server-username: MAVEN_USERNAME + server-password: MAVEN_PASSWORD + gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }} + gpg-passphrase: ${{ secrets.GPG_PASSPHRASE }} + + - uses: actions/download-artifact@v4 + with: + name: oonimkall-linux.jar + path: MULTIPLATFORM/linux + + - name: Prepare JARs for Maven + run: | + mv MULTIPLATFORM/linux/oonimkall.jar MULTIPLATFORM/oonimkall-linux.jar + + - name: Publish to Maven Central + run: | + if [[ "${GITHUB_REF_TYPE}" == "tag" ]]; then + BASE_VERSION="${GITHUB_REF_NAME#v}" + else + SHORT_SHA=$(echo "${GITHUB_SHA}" | cut -c1-8) + BASE_VERSION="${SHORT_SHA}" + fi + + PLATFORM="linux" + JAR_NAME="oonimkall-linux.jar" + VERSION="${BASE_VERSION}-${PLATFORM}" + + echo "Deploying $PLATFORM version $VERSION..." + + mvn -f MULTIPLATFORM/pom.xml versions:set -DnewVersion=${VERSION} -DremoveSnapshot=true + mvn -f MULTIPLATFORM/pom.xml clean deploy -P deploy-desktop --batch-mode -DskipTests -Ddesktop.jar.name=${JAR_NAME} + + env: + MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }} + MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }} + MAVEN_GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} + build_darwin_desktop_jar: runs-on: macos-15 @@ -60,6 +113,59 @@ jobs: name: oonimkall-darwin.jar path: ./DESKTOP/oonimkall.jar + publish_darwin_jar_maven: + runs-on: ubuntu-22.04 + needs: + - build_darwin_desktop_jar + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Set up JDK + uses: actions/setup-java@v4 + with: + java-version: '17' + distribution: 'temurin' + cache: 'maven' + server-id: central + server-username: MAVEN_USERNAME + server-password: MAVEN_PASSWORD + gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }} + gpg-passphrase: ${{ secrets.GPG_PASSPHRASE }} + + - uses: actions/download-artifact@v4 + with: + name: oonimkall-darwin.jar + path: MULTIPLATFORM/darwin + + - name: Prepare JARs for Maven + run: | + mv MULTIPLATFORM/darwin/oonimkall.jar MULTIPLATFORM/oonimkall-darwin.jar + + - name: Publish to Maven Central + run: | + if [[ "${GITHUB_REF_TYPE}" == "tag" ]]; then + BASE_VERSION="${GITHUB_REF_NAME#v}" + else + SHORT_SHA=$(echo "${GITHUB_SHA}" | cut -c1-8) + BASE_VERSION="${SHORT_SHA}" + fi + + PLATFORM="darwin" + JAR_NAME="oonimkall-darwin.jar" + VERSION="${BASE_VERSION}-${PLATFORM}" + + echo "Deploying $PLATFORM version $VERSION..." + + mvn -f MULTIPLATFORM/pom.xml versions:set -DnewVersion=${VERSION} -DremoveSnapshot=true + mvn -f MULTIPLATFORM/pom.xml clean deploy -P deploy-desktop --batch-mode -DskipTests -Ddesktop.jar.name=${JAR_NAME} + + env: + MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }} + MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }} + MAVEN_GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} + build_windows_desktop_jar: runs-on: windows-latest @@ -93,62 +199,65 @@ jobs: name: oonimkall-windows.jar path: ./DESKTOP/oonimkall.jar - merge_desktop_jar: + publish_windows_jar_maven: runs-on: ubuntu-22.04 needs: - - build_linux_desktop_jar - - build_darwin_desktop_jar - build_windows_desktop_jar - steps: - - name: Download Linux JAR - uses: actions/download-artifact@v4 + - uses: actions/checkout@v4 with: - name: oonimkall-linux.jar - path: linux + fetch-depth: 0 - - name: Download Darwin JAR - uses: actions/download-artifact@v4 + - name: Set up JDK + uses: actions/setup-java@v4 with: - name: oonimkall-darwin.jar - path: darwin + java-version: '17' + distribution: 'temurin' + cache: 'maven' + server-id: central + server-username: MAVEN_USERNAME + server-password: MAVEN_PASSWORD + gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }} + gpg-passphrase: ${{ secrets.GPG_PASSPHRASE }} - - name: Download Windows JAR - uses: actions/download-artifact@v4 + - uses: actions/download-artifact@v4 with: name: oonimkall-windows.jar - path: windows - - - name: Unzip all JARs - run: | - mkdir -p merged - unzip -q linux/oonimkall.jar -d merged - unzip -q darwin/oonimkall.jar -d darwin_unzip - unzip -q windows/oonimkall.jar -d windows_unzip + path: MULTIPLATFORM/windows - - name: Copy Darwin native libs + - name: Prepare JARs for Maven run: | - cp -r darwin_unzip/jniLibs/amd64/*.dylib merged/jniLibs/amd64/ || true - cp -r darwin_unzip/jniLibs/arm64/*.dylib merged/jniLibs/arm64/ || true + mv MULTIPLATFORM/windows/oonimkall.jar MULTIPLATFORM/oonimkall-windows.jar - - name: Copy Windows native libs - run: | - cp -r windows_unzip/jniLibs/amd64/* merged/jniLibs/amd64/ || true - - - name: Repack merged JAR + - name: Publish to Maven Central run: | - cd merged - jar cf ../oonimkall-desktop.jar . + if [[ "${GITHUB_REF_TYPE}" == "tag" ]]; then + BASE_VERSION="${GITHUB_REF_NAME#v}" + else + SHORT_SHA=$(echo "${GITHUB_SHA}" | cut -c1-8) + BASE_VERSION="${SHORT_SHA}" + fi + + PLATFORM="windows" + JAR_NAME="oonimkall-windows.jar" + VERSION="${BASE_VERSION}-${PLATFORM}" + + echo "Deploying $PLATFORM version $VERSION..." + + mvn -f MULTIPLATFORM/pom.xml versions:set -DnewVersion=${VERSION} -DremoveSnapshot=true + mvn -f MULTIPLATFORM/pom.xml clean deploy -P deploy-desktop --batch-mode -DskipTests -Ddesktop.jar.name=${JAR_NAME} + + env: + MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }} + MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }} + MAVEN_GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} - - name: Upload merged multiplatform JAR - uses: actions/upload-artifact@v4 - with: - name: oonimkall-desktop.jar - path: oonimkall-desktop.jar - publish_desktop_jar_github: runs-on: ubuntu-22.04 - needs: merge_desktop_jar + needs: + - build_linux_desktop_jar + - build_darwin_desktop_jar + - build_windows_desktop_jar permissions: contents: write steps: @@ -158,57 +267,26 @@ jobs: - uses: actions/download-artifact@v4 with: - name: oonimkall-desktop.jar - - - name: Upload to Github - run: ./script/ghpublish.bash oonimkall-desktop.jar - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - publish_desktop_jar_maven: - runs-on: ubuntu-22.04 - needs: merge_desktop_jar - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 + name: oonimkall-linux.jar + path: linux - - name: Set up JDK - uses: actions/setup-java@v4 + - uses: actions/download-artifact@v4 with: - java-version: '17' - distribution: 'temurin' - cache: 'maven' - server-id: central - server-username: MAVEN_USERNAME - server-password: MAVEN_PASSWORD - gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }} - gpg-passphrase: ${{ secrets.GPG_PASSPHRASE }} + name: oonimkall-darwin.jar + path: darwin - - name: Download oonimkall-desktop JAR - uses: actions/download-artifact@v4 + - uses: actions/download-artifact@v4 with: - name: oonimkall-desktop.jar - path: MULTIPLATFORM + name: oonimkall-windows.jar + path: windows - - name: Set Project Version + - name: Rename artifacts run: | - if [[ "${GITHUB_REF_TYPE}" == "tag" ]]; then - VERSION="${GITHUB_REF_NAME#v}" - else - SHORT_SHA=$(echo "${GITHUB_SHA}" | cut -c1-8) - VERSION="${SHORT_SHA}" - fi - echo "Generated version: $VERSION" - mvn -f MULTIPLATFORM/pom.xml versions:set -P deploy-desktop -DnewVersion=${VERSION}-desktop -DremoveSnapshot=true - env: - # Maven versions plugin might need GPG passphrase if it triggers a 'verify' phase. - MAVEN_GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} + mv linux/oonimkall.jar oonimkall-linux.jar + mv darwin/oonimkall.jar oonimkall-darwin.jar + mv windows/oonimkall.jar oonimkall-windows.jar - - name: Publish to Maven Central - run: | - mvn -f MULTIPLATFORM/pom.xml clean deploy -P deploy-desktop --batch-mode -DskipTests + - name: Upload to Github + run: ./script/ghpublish.bash oonimkall-linux.jar oonimkall-darwin.jar oonimkall-windows.jar env: - MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }} - MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }} - MAVEN_GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/MULTIPLATFORM/pom.xml b/MULTIPLATFORM/pom.xml index 07ffba057..f91a830d6 100644 --- a/MULTIPLATFORM/pom.xml +++ b/MULTIPLATFORM/pom.xml @@ -157,11 +157,6 @@ deploy-desktop - - ${project.basedir}/oonimkall-desktop.jar - jar - jar - @@ -177,7 +172,7 @@ - ${project.artifact.file} + ${project.basedir}/${desktop.jar.name} jar