Skip to content

desktop

desktop #380

Workflow file for this run

name: desktop
on:
push:
branches:
- "release/**"
- "fullbuild"
- "desktopbuild"
tags:
- "v*"
schedule:
- cron: "17 1 * * *"
jobs:
build_linux_desktop_jar:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Get GOVERSION content
id: goversion
run: echo "version=$(cat GOVERSION)" >> "$GITHUB_OUTPUT"
- uses: magnetikonline/action-golang-cache@v4
with:
go-version: "${{ steps.goversion.outputs.version }}"
cache-key-suffix: "-windows-${{ steps.goversion.outputs.version }}"
- run: sudo apt-get update && sudo apt-get install -y gcc-aarch64-linux-gnu
- run: make DESKTOP/linux
- uses: actions/upload-artifact@v4
with:
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
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Get GOVERSION content
id: goversion
run: echo "version=$(cat GOVERSION)" >> "$GITHUB_OUTPUT"
- uses: magnetikonline/action-golang-cache@v4
with:
go-version: "${{ steps.goversion.outputs.version }}"
cache-key-suffix: "-windows-${{ steps.goversion.outputs.version }}"
- run: make DESKTOP/darwin
- uses: actions/upload-artifact@v4
with:
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
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Get GOVERSION content
id: goversion
run: echo "version=$(cat GOVERSION)" >> "$GITHUB_OUTPUT"
- uses: magnetikonline/action-golang-cache@v4
with:
go-version: "${{ steps.goversion.outputs.version }}"
cache-key-suffix: "-windows-${{ steps.goversion.outputs.version }}"
- name: Install oomobile
run: |
go install github.com/ooni/oomobile/cmd/gomobile@latest
go install github.com/ooni/oomobile/cmd/gobind@latest
go get github.com/ooni/oomobile/bind@latest
- name: Init oomobile
run: gomobile init
- name: Run bind
run: gomobile bind -target java/amd64 -o DESKTOP/oonimkall.jar ./pkg/oonimkall
- uses: actions/upload-artifact@v4
with:
name: oonimkall-windows.jar
path: ./DESKTOP/oonimkall.jar
publish_windows_jar_maven:
runs-on: ubuntu-22.04
needs:
- build_windows_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-windows.jar
path: MULTIPLATFORM/windows
- name: Prepare JARs for Maven
run: |
mv MULTIPLATFORM/windows/oonimkall.jar MULTIPLATFORM/oonimkall-windows.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="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 }}
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 }}