From 0c3659f34ecb5a1b1661cad7f114824dc47abf89 Mon Sep 17 00:00:00 2001 From: Norbel Ambanumben Date: Wed, 11 Feb 2026 15:01:25 +0100 Subject: [PATCH 1/3] fix: update desktop JAR publishing process --- .github/workflows/desktop.yml | 137 ++++++++++++++++++---------------- MULTIPLATFORM/pom.xml | 7 +- 2 files changed, 73 insertions(+), 71 deletions(-) diff --git a/.github/workflows/desktop.yml b/.github/workflows/desktop.yml index a84d1732a..70d8381e7 100644 --- a/.github/workflows/desktop.yml +++ b/.github/workflows/desktop.yml @@ -6,6 +6,7 @@ on: - "release/**" - "fullbuild" - "desktopbuild" + - "update-maven-publish" tags: - "v*" schedule: @@ -93,81 +94,51 @@ jobs: name: oonimkall-windows.jar path: ./DESKTOP/oonimkall.jar - merge_desktop_jar: + publish_desktop_jar_github: runs-on: ubuntu-22.04 needs: - build_linux_desktop_jar - build_darwin_desktop_jar - build_windows_desktop_jar - + permissions: + contents: write steps: - - name: Download Linux JAR - uses: actions/download-artifact@v4 + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - uses: actions/download-artifact@v4 with: name: oonimkall-linux.jar path: linux - - name: Download Darwin JAR - uses: actions/download-artifact@v4 + - uses: actions/download-artifact@v4 with: name: oonimkall-darwin.jar path: darwin - - 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 - - - name: Copy Darwin native libs + - name: Rename artifacts run: | - cp -r darwin_unzip/jniLibs/amd64/*.dylib merged/jniLibs/amd64/ || true - cp -r darwin_unzip/jniLibs/arm64/*.dylib merged/jniLibs/arm64/ || true - - - name: Copy Windows native libs - run: | - cp -r windows_unzip/jniLibs/amd64/* merged/jniLibs/amd64/ || true - - - name: Repack merged JAR - run: | - cd merged - jar cf ../oonimkall-desktop.jar . - - - 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 - permissions: - contents: write - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - uses: actions/download-artifact@v4 - with: - name: oonimkall-desktop.jar + mv linux/oonimkall.jar oonimkall-linux.jar + mv darwin/oonimkall.jar oonimkall-darwin.jar + mv windows/oonimkall.jar oonimkall-windows.jar - name: Upload to Github - run: ./script/ghpublish.bash oonimkall-desktop.jar + run: ./script/ghpublish.bash oonimkall-linux.jar oonimkall-darwin.jar oonimkall-windows.jar env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} publish_desktop_jar_maven: runs-on: ubuntu-22.04 - needs: merge_desktop_jar + needs: + - build_linux_desktop_jar + - build_darwin_desktop_jar + - build_windows_desktop_jar steps: - uses: actions/checkout@v4 with: @@ -185,29 +156,65 @@ jobs: gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }} gpg-passphrase: ${{ secrets.GPG_PASSPHRASE }} - - name: Download oonimkall-desktop JAR - uses: actions/download-artifact@v4 + - uses: actions/download-artifact@v4 + with: + name: oonimkall-linux.jar + path: MULTIPLATFORM/linux + + - uses: actions/download-artifact@v4 + with: + name: oonimkall-darwin.jar + path: MULTIPLATFORM/darwin + + - uses: actions/download-artifact@v4 with: - name: oonimkall-desktop.jar - path: MULTIPLATFORM + name: oonimkall-windows.jar + path: MULTIPLATFORM/windows - - name: Set Project Version + - name: Prepare JARs for Maven + run: | + mv MULTIPLATFORM/linux/oonimkall.jar MULTIPLATFORM/oonimkall-linux.jar + mv MULTIPLATFORM/darwin/oonimkall.jar MULTIPLATFORM/oonimkall-darwin.jar + mv MULTIPLATFORM/windows/oonimkall.jar MULTIPLATFORM/oonimkall-windows.jar + + - name: Publish to Maven Central run: | if [[ "${GITHUB_REF_TYPE}" == "tag" ]]; then - VERSION="${GITHUB_REF_NAME#v}" + BASE_VERSION="${GITHUB_REF_NAME#v}" else SHORT_SHA=$(echo "${GITHUB_SHA}" | cut -c1-8) - VERSION="${SHORT_SHA}" + BASE_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 }} - - - name: Publish to Maven Central - run: | - mvn -f MULTIPLATFORM/pom.xml clean deploy -P deploy-desktop --batch-mode -DskipTests + + echo "Base Version: $BASE_VERSION" + + # Function to deploy a specific platform + deploy_platform() { + PLATFORM=$1 + JAR_NAME=$2 + VERSION="${BASE_VERSION}-${PLATFORM}" + + echo "--------------------------------------------------" + echo "Deploying $PLATFORM version $VERSION..." + echo "--------------------------------------------------" + + # Revert to original pom if backup exists (from previous iteration) + if [ -f MULTIPLATFORM/pom.xml.versionsBackup ]; then + mvn -f MULTIPLATFORM/pom.xml versions:revert + fi + + # Set the version for this platform + mvn -f MULTIPLATFORM/pom.xml versions:set -DnewVersion=${VERSION} -DremoveSnapshot=true + + # Deploy + # We pass desktop.jar.name to select the correct file + mvn -f MULTIPLATFORM/pom.xml clean deploy -P deploy-desktop --batch-mode -DskipTests -Ddesktop.jar.name=${JAR_NAME} + } + + deploy_platform "linux" "oonimkall-linux.jar" + deploy_platform "darwin" "oonimkall-darwin.jar" + deploy_platform "windows" "oonimkall-windows.jar" + env: MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }} MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }} 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 From 48d0e0949bd2eacf00fd5e4960659d0a18ab424e Mon Sep 17 00:00:00 2001 From: Norbel Ambanumben Date: Wed, 11 Feb 2026 15:35:49 +0100 Subject: [PATCH 2/3] feat: implement Maven publishing for Linux and Darwin desktop JARs --- .github/workflows/desktop.yml | 234 ++++++++++++++++++++++------------ 1 file changed, 153 insertions(+), 81 deletions(-) diff --git a/.github/workflows/desktop.yml b/.github/workflows/desktop.yml index 70d8381e7..37d408ff9 100644 --- a/.github/workflows/desktop.yml +++ b/.github/workflows/desktop.yml @@ -38,6 +38,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 @@ -61,6 +114,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 @@ -94,50 +200,9 @@ jobs: name: oonimkall-windows.jar path: ./DESKTOP/oonimkall.jar - publish_desktop_jar_github: + publish_windows_jar_maven: runs-on: ubuntu-22.04 needs: - - build_linux_desktop_jar - - build_darwin_desktop_jar - - build_windows_desktop_jar - permissions: - contents: write - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - uses: actions/download-artifact@v4 - with: - name: oonimkall-linux.jar - path: linux - - - uses: actions/download-artifact@v4 - with: - name: oonimkall-darwin.jar - path: darwin - - - uses: actions/download-artifact@v4 - with: - name: oonimkall-windows.jar - path: windows - - - name: Rename artifacts - run: | - mv linux/oonimkall.jar oonimkall-linux.jar - mv darwin/oonimkall.jar oonimkall-darwin.jar - mv windows/oonimkall.jar oonimkall-windows.jar - - - name: Upload to Github - run: ./script/ghpublish.bash oonimkall-linux.jar oonimkall-darwin.jar oonimkall-windows.jar - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - publish_desktop_jar_maven: - runs-on: ubuntu-22.04 - needs: - - build_linux_desktop_jar - - build_darwin_desktop_jar - build_windows_desktop_jar steps: - uses: actions/checkout@v4 @@ -156,16 +221,6 @@ jobs: 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 - - - uses: actions/download-artifact@v4 - with: - name: oonimkall-darwin.jar - path: MULTIPLATFORM/darwin - - uses: actions/download-artifact@v4 with: name: oonimkall-windows.jar @@ -173,8 +228,6 @@ jobs: - name: Prepare JARs for Maven run: | - mv MULTIPLATFORM/linux/oonimkall.jar MULTIPLATFORM/oonimkall-linux.jar - mv MULTIPLATFORM/darwin/oonimkall.jar MULTIPLATFORM/oonimkall-darwin.jar mv MULTIPLATFORM/windows/oonimkall.jar MULTIPLATFORM/oonimkall-windows.jar - name: Publish to Maven Central @@ -186,36 +239,55 @@ jobs: BASE_VERSION="${SHORT_SHA}" fi - echo "Base Version: $BASE_VERSION" + PLATFORM="windows" + JAR_NAME="oonimkall-windows.jar" + VERSION="${BASE_VERSION}-${PLATFORM}" - # Function to deploy a specific platform - deploy_platform() { - PLATFORM=$1 - JAR_NAME=$2 - VERSION="${BASE_VERSION}-${PLATFORM}" - - echo "--------------------------------------------------" - echo "Deploying $PLATFORM version $VERSION..." - echo "--------------------------------------------------" - - # Revert to original pom if backup exists (from previous iteration) - if [ -f MULTIPLATFORM/pom.xml.versionsBackup ]; then - mvn -f MULTIPLATFORM/pom.xml versions:revert - fi - - # Set the version for this platform - mvn -f MULTIPLATFORM/pom.xml versions:set -DnewVersion=${VERSION} -DremoveSnapshot=true - - # Deploy - # We pass desktop.jar.name to select the correct file - mvn -f MULTIPLATFORM/pom.xml clean deploy -P deploy-desktop --batch-mode -DskipTests -Ddesktop.jar.name=${JAR_NAME} - } - - deploy_platform "linux" "oonimkall-linux.jar" - deploy_platform "darwin" "oonimkall-darwin.jar" - deploy_platform "windows" "oonimkall-windows.jar" + 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 }} + + publish_desktop_jar_github: + runs-on: ubuntu-22.04 + needs: + - build_linux_desktop_jar + - build_darwin_desktop_jar + - build_windows_desktop_jar + permissions: + contents: write + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - uses: actions/download-artifact@v4 + with: + name: oonimkall-linux.jar + path: linux + + - uses: actions/download-artifact@v4 + with: + name: oonimkall-darwin.jar + path: darwin + + - uses: actions/download-artifact@v4 + with: + name: oonimkall-windows.jar + path: windows + + - name: Rename artifacts + run: | + mv linux/oonimkall.jar oonimkall-linux.jar + mv darwin/oonimkall.jar oonimkall-darwin.jar + mv windows/oonimkall.jar oonimkall-windows.jar + + - name: Upload to Github + run: ./script/ghpublish.bash oonimkall-linux.jar oonimkall-darwin.jar oonimkall-windows.jar + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From 43ba5102123bd1b219e9ad0e8200de5a235c700b Mon Sep 17 00:00:00 2001 From: Norbel Ambanumben Date: Thu, 12 Feb 2026 12:54:41 +0100 Subject: [PATCH 3/3] chore: remove branch restriction --- .github/workflows/desktop.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/desktop.yml b/.github/workflows/desktop.yml index 37d408ff9..24dd91db6 100644 --- a/.github/workflows/desktop.yml +++ b/.github/workflows/desktop.yml @@ -6,7 +6,6 @@ on: - "release/**" - "fullbuild" - "desktopbuild" - - "update-maven-publish" tags: - "v*" schedule: