Skip to content

MPP Release

MPP Release #1

# GitHub Actions Workflow for testing mpp-ui releases
# Builds Android APK and Desktop packages for multiple platforms
# Triggered by tags starting with 'compose-'
name: Compose Release Test
on:
push:
tags:
- 'compose-*'
workflow_dispatch:
inputs:
version:
description: 'Version to build'
required: true
default: '1.0.0-test'
jobs:
# Build Android APK
build-android:
name: Build Android APK
runs-on: ubuntu-latest
steps:
- 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
- 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 || echo "Yarn lock upgrade failed, continuing..."
- name: Build mpp-core dependency
run: ./gradlew :mpp-core:assemble
- name: Build Android Debug APK
run: ./gradlew :mpp-ui:assembleDebug
- name: Build Android Release APK
run: ./gradlew :mpp-ui:assembleRelease
- 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 }}
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: 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
- name: Grant execute permission for gradlew (Unix)
if: runner.os != 'Windows'
run: chmod +x gradlew
- name: Fix yarn lock issues
run: ./gradlew kotlinUpgradeYarnLock || echo "Yarn lock upgrade failed, continuing..."
- name: Build mpp-core dependency
run: ./gradlew :mpp-core:assemble
- name: Build Desktop package
run: ./gradlew :mpp-ui:${{ matrix.task }}
- 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-android, build-desktop]
runs-on: ubuntu-latest
# 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-ui module containing:
### 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 }}