Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
248 changes: 163 additions & 85 deletions .github/workflows/desktop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand All @@ -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

Expand Down Expand Up @@ -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:
Expand All @@ -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 }}
7 changes: 1 addition & 6 deletions MULTIPLATFORM/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -157,11 +157,6 @@

<profile>
<id>deploy-desktop</id>
<properties>
<project.artifact.file>${project.basedir}/oonimkall-desktop.jar</project.artifact.file>
<project.artifact.type>jar</project.artifact.type>
<project.packaging>jar</project.packaging>
</properties>
<build>
<plugins>
<plugin>
Expand All @@ -177,7 +172,7 @@
<configuration>
<artifacts>
<artifact>
<file>${project.artifact.file}</file>
<file>${project.basedir}/${desktop.jar.name}</file>
<type>jar</type>
</artifact>
</artifacts>
Expand Down
Loading