MPP Release #6
Workflow file for this run
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
| # GitHub Actions Workflow for testing mpp-ui releases | |
| # Builds Android APK, Desktop packages for multiple platforms, and mpp-server JAR | |
| # Triggered by tags starting with 'compose-' | |
| name: MPP Release | |
| on: | |
| release: | |
| types: [prereleased, released] | |
| workflow_dispatch: | |
| inputs: | |
| version: | |
| description: 'Version to build' | |
| required: true | |
| default: '1.0.0-test' | |
| jobs: | |
| # Build mpp-server JAR | |
| build-server: | |
| name: Build Server JAR | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: write | |
| pull-requests: write | |
| steps: | |
| - name: Free Disk Space (Ubuntu) | |
| uses: jlumbroso/free-disk-space@main | |
| with: | |
| # Remove large packages to free ~14GB | |
| tool-cache: false | |
| android: true | |
| dotnet: true | |
| haskell: true | |
| large-packages: true | |
| docker-images: true | |
| swap-storage: true | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Set up JDK 17 | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '17' | |
| distribution: 'temurin' | |
| - name: Setup Gradle | |
| uses: gradle/actions/setup-gradle@v4 | |
| with: | |
| cache-disabled: true | |
| - name: Grant execute permission for gradlew | |
| run: chmod +x gradlew | |
| - name: Build mpp-core dependency | |
| run: ./gradlew :mpp-core:assemble --no-daemon | |
| - name: Build mpp-server fat JAR | |
| run: ./gradlew :mpp-server:fatJar --no-daemon | |
| - name: Clean build cache to save space | |
| run: | | |
| ./gradlew :mpp-server:clean | |
| rm -rf ~/.gradle/caches/modules-2/files-2.1 | |
| df -h | |
| - name: Upload Server JAR | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: server-jar | |
| path: mpp-server/build/libs/*-all.jar | |
| # Build Android APK | |
| build-android: | |
| name: Build Android APK | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: write | |
| pull-requests: write | |
| steps: | |
| - name: Free Disk Space (Ubuntu) | |
| uses: jlumbroso/free-disk-space@main | |
| with: | |
| tool-cache: false | |
| android: false # Keep Android SDK as we need it | |
| dotnet: true | |
| haskell: true | |
| large-packages: true | |
| docker-images: true | |
| swap-storage: true | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Set up JDK 17 | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '17' | |
| distribution: 'temurin' | |
| - name: Setup Gradle | |
| uses: gradle/actions/setup-gradle@v4 | |
| with: | |
| cache-disabled: true | |
| - name: Grant execute permission for gradlew | |
| run: chmod +x gradlew | |
| - name: Install pnpm | |
| run: npm install -g [email protected] | |
| working-directory: mpp-ui | |
| - name: Install dependencies | |
| run: pnpm install | |
| working-directory: mpp-ui | |
| - name: Fix yarn lock issues | |
| run: ./gradlew kotlinUpgradeYarnLock --no-daemon || echo "Yarn lock upgrade failed, continuing..." | |
| - name: Build mpp-core dependency | |
| run: ./gradlew :mpp-core:assemble --no-daemon | |
| - name: Build Android Debug APK | |
| run: ./gradlew :mpp-ui:assembleDebug --no-daemon | |
| - name: Build Android Release APK | |
| run: ./gradlew :mpp-ui:assembleRelease --no-daemon | |
| - name: Clean build cache to save space | |
| run: | | |
| ./gradlew :mpp-ui:clean | |
| rm -rf ~/.gradle/caches/modules-2/files-2.1 | |
| rm -rf ~/.gradle/caches/transforms-* | |
| df -h | |
| - name: Upload Android APKs | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: android-apks | |
| path: | | |
| mpp-ui/build/outputs/apk/debug/*.apk | |
| mpp-ui/build/outputs/apk/release/*.apk | |
| # Build Desktop packages for multiple platforms | |
| build-desktop: | |
| name: Build Desktop (${{ matrix.os }}) | |
| runs-on: ${{ matrix.os }} | |
| permissions: | |
| contents: write | |
| pull-requests: write | |
| strategy: | |
| matrix: | |
| os: [ubuntu-latest, windows-latest, macos-latest] | |
| include: | |
| - os: ubuntu-latest | |
| task: packageDeb | |
| artifact: linux-deb | |
| path: mpp-ui/build/compose/binaries/main/deb/*.deb | |
| - os: windows-latest | |
| task: packageMsi | |
| artifact: windows-msi | |
| path: mpp-ui/build/compose/binaries/main/msi/*.msi | |
| - os: macos-latest | |
| task: packageDmg | |
| artifact: macos-dmg | |
| path: mpp-ui/build/compose/binaries/main/dmg/*.dmg | |
| steps: | |
| - name: Free Disk Space (Ubuntu) | |
| if: runner.os == 'Linux' | |
| uses: jlumbroso/free-disk-space@main | |
| with: | |
| tool-cache: false | |
| android: true | |
| dotnet: true | |
| haskell: true | |
| large-packages: true | |
| docker-images: true | |
| swap-storage: true | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Set up JDK 17 | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '17' | |
| distribution: 'temurin' | |
| - name: Setup Gradle | |
| uses: gradle/actions/setup-gradle@v4 | |
| with: | |
| cache-disabled: true | |
| - name: Grant execute permission for gradlew (Unix) | |
| if: runner.os != 'Windows' | |
| run: chmod +x gradlew | |
| - name: Fix yarn lock issues | |
| run: ./gradlew kotlinUpgradeYarnLock --no-daemon || echo "Yarn lock upgrade failed, continuing..." | |
| - name: Build mpp-core dependency | |
| run: ./gradlew :mpp-core:assemble --no-daemon | |
| - name: Build Desktop package | |
| run: ./gradlew :mpp-ui:${{ matrix.task }} --no-daemon | |
| - name: Clean build cache to save space | |
| run: | | |
| ./gradlew :mpp-ui:clean | |
| rm -rf ~/.gradle/caches/modules-2/files-2.1 | |
| df -h | |
| - name: Upload Desktop package | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: ${{ matrix.artifact }} | |
| path: ${{ matrix.path }} | |
| # Create release with all artifacts | |
| create-release: | |
| name: Create Release | |
| needs: [build-server, build-android, build-desktop] | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: write | |
| pull-requests: write | |
| # Only run for compose-* tags to avoid conflicts with main release workflow | |
| if: startsWith(github.ref, 'refs/tags/compose-') | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Download all artifacts | |
| uses: actions/download-artifact@v4 | |
| with: | |
| path: artifacts | |
| - name: Display structure of downloaded files | |
| run: ls -la artifacts/ | |
| - name: Create Release | |
| uses: softprops/action-gh-release@v2 | |
| with: | |
| name: "Compose Release ${{ github.ref_name }}" | |
| body: | | |
| ## AutoDev Compose Multiplatform Release Test | |
| This is a test release for the mpp modules containing: | |
| ### Server | |
| - mpp-server fat JAR (ready to run with `java -jar mpp-server-*-all.jar`) | |
| ### Android | |
| - Debug APK | |
| - Release APK | |
| ### Desktop | |
| - Linux (.deb package) | |
| - Windows (.msi installer) | |
| - macOS (.dmg image) | |
| **Note**: This is a test release. Please use with caution. | |
| files: | | |
| artifacts/**/* | |
| draft: false | |
| prerelease: true | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |