desktop #380
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 }} |