name: Package on: workflow_dispatch permissions: contents: read jobs: build: runs-on: ${{ matrix.os }} strategy: matrix: os: [windows-2022, ubuntu-22.04, ubuntu-22.04-arm, macos-15-intel, macos-14] steps: - uses: actions/checkout@v6 with: submodules: recursive - name: Clear Java tool-cache for reproducibility shell: bash run: rm -rf "$RUNNER_TOOL_CACHE"/Java_* - name: Set up JDK 25.0.2 uses: actions/setup-java@v5 with: distribution: 'temurin' java-version: '25.0.2' - name: Show Build Versions run: ./gradlew -v - name: Build with Gradle run: ./gradlew jpackage - name: Codesign, package and notarize macOS distribution if: ${{ runner.os == 'macOS' }} uses: sparrowwallet/github-actions/codesign-macos@v1 with: app-name: Sparrow certificate: ${{ secrets.MACOS_CERTIFICATE }} certificate-password: ${{ secrets.MACOS_CERTIFICATE_PASSWORD }} apple-id: ${{ secrets.MACOS_NOTARIZATION_APPLE_ID }} team-id: ${{ secrets.MACOS_NOTARIZATION_TEAM_ID }} notarization-password: ${{ secrets.MACOS_NOTARIZATION_PASSWORD }} - name: Package Windows zip distribution if: ${{ runner.os == 'Windows' }} run: ./gradlew packageZipDistribution - name: Package Linux tar distribution if: ${{ runner.os == 'Linux' }} run: ./gradlew packageTarDistribution - name: Repackage Linux deb distribution if: ${{ runner.os == 'Linux' }} run: ./repackage.sh - name: Upload Artifact uses: actions/upload-artifact@v6 with: name: Sparrow Build - ${{ runner.os }} ${{ runner.arch }} path: | build/jpackage/* !build/jpackage/Sparrow/ !build/jpackage/Sparrow.app/ - name: Headless build with Gradle if: ${{ runner.os == 'Linux' }} run: ./gradlew -Djava.awt.headless=true clean jpackage - name: Package Linux headless tar distribution if: ${{ runner.os == 'Linux' }} run: ./gradlew -Djava.awt.headless=true packageTarDistribution - name: Repackage Linux headless deb distribution if: ${{ runner.os == 'Linux' }} run: ./repackage.sh - name: Upload Headless Artifact if: ${{ runner.os == 'Linux' }} uses: actions/upload-artifact@v6 with: name: Sparrow Build - ${{ runner.os }} ${{ runner.arch }} Headless path: | build/jpackage/* !build/jpackage/Sparrow/