Compose Release compose-0.1.6 #10
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 | |
| # Only run for compose-* releases or manual dispatch | |
| if: startsWith(github.ref, 'refs/tags/compose-') || github.event_name == 'workflow_dispatch' | |
| 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-server fat JAR | |
| run: ./gradlew :mpp-server:fatJar --no-daemon | |
| - name: Upload Server JAR | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: server-jar | |
| path: mpp-server/build/libs/*-all.jar | |
| - name: Clean build cache to save space (Linux only) | |
| run: | | |
| ./gradlew :mpp-server:clean | |
| rm -rf ~/.gradle/caches/modules-2/files-2.1 | |
| df -h | |
| # Build Android APK | |
| build-android: | |
| name: Build Android APK | |
| runs-on: ubuntu-latest | |
| # Only run for compose-* releases or manual dispatch | |
| if: startsWith(github.ref, 'refs/tags/compose-') || github.event_name == 'workflow_dispatch' | |
| 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: Build Android Debug APK | |
| run: ./gradlew :mpp-ui:assembleDebug --no-daemon | |
| - name: Build Android Release APK | |
| run: ./gradlew :mpp-ui:assembleRelease --no-daemon | |
| - 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 | |
| - name: Clean build cache to save space (Linux only) | |
| run: | | |
| ./gradlew :mpp-ui:clean | |
| rm -rf ~/.gradle/caches/modules-2/files-2.1 | |
| rm -rf ~/.gradle/caches/transforms-* | |
| df -h | |
| # Build Desktop packages for multiple platforms | |
| build-desktop: | |
| name: Build Desktop (${{ matrix.os }}) | |
| runs-on: ${{ matrix.os }} | |
| # Only run for compose-* releases or manual dispatch | |
| if: startsWith(github.ref, 'refs/tags/compose-') || github.event_name == 'workflow_dispatch' | |
| 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 Desktop package | |
| run: ./gradlew :mpp-ui:${{ matrix.task }} --no-daemon | |
| - name: Upload Desktop package | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: ${{ matrix.artifact }} | |
| path: ${{ matrix.path }} | |
| - name: Clean build cache to save space (Unix) | |
| if: runner.os != 'Windows' | |
| run: | | |
| ./gradlew :mpp-ui:clean | |
| rm -rf ~/.gradle/caches/modules-2/files-2.1 | |
| df -h | |
| - name: Clean build cache to save space (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| ./gradlew :mpp-ui:clean | |
| if (Test-Path "$env:USERPROFILE\.gradle\caches\modules-2\files-2.1") { | |
| Remove-Item -Recurse -Force "$env:USERPROFILE\.gradle\caches\modules-2\files-2.1" | |
| } | |
| # 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 or manual dispatch | |
| if: startsWith(github.ref, 'refs/tags/compose-') || github.event_name == 'workflow_dispatch' | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Download all artifacts | |
| uses: actions/download-artifact@v4 | |
| with: | |
| path: artifacts | |
| continue-on-error: true | |
| - name: Display structure of downloaded files | |
| run: | | |
| if [ -d "artifacts" ]; then | |
| ls -la artifacts/ | |
| else | |
| echo "No artifacts directory found" | |
| mkdir -p artifacts | |
| fi | |
| - 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 | |
| fail_on_unmatched_files: false | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |