Skip to content

Localize KMP continue episode action #25

Localize KMP continue episode action

Localize KMP continue episode action #25

name: Compose Multiplatform CI
on:
push:
branches: [main, develop]
paths:
- "multiplatform/**"
- "catalog-contract/**"
- "release/train.json"
- "scripts/verify-release.sh"
- ".github/workflows/multiplatform-ci.yml"
pull_request:
branches: [main, develop]
paths:
- "multiplatform/**"
- "catalog-contract/**"
- "release/train.json"
- "scripts/verify-release.sh"
- ".github/workflows/multiplatform-ci.yml"
workflow_dispatch:
permissions:
contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
defaults:
run:
working-directory: multiplatform
jobs:
shared-and-web:
name: Shared tests, desktop compile, JS and Wasm
runs-on: ubuntu-latest
timeout-minutes: 35
steps:
- uses: actions/checkout@v7
- name: Verify deterministic preview image responses
run: python3 -B -m unittest discover -s tools -p 'test_*.py' -v
- name: Verify release train and vendored contract
working-directory: ${{ github.workspace }}
run: ./scripts/verify-release.sh kmp
- uses: actions/setup-java@v5
with:
distribution: temurin
java-version: 21
- uses: gradle/actions/setup-gradle@v6
- name: Test and build shared targets
run: ./gradlew --dependency-verification=strict :composeApp:desktopTest :composeApp:compileKotlinDesktop :composeApp:jsBrowserDevelopmentExecutableDistribution :composeApp:wasmJsBrowserDistribution
- name: Upload web distributions
uses: actions/upload-artifact@v7
with:
name: smartmovie-web-ci
path: |
multiplatform/composeApp/build/dist/js/developmentExecutable/
multiplatform/composeApp/build/dist/wasmJs/productionExecutable/
if-no-files-found: error
retention-days: 7
desktop-images:
name: Portable app image (${{ matrix.os }})
needs: shared-and-web
strategy:
fail-fast: false
matrix:
os: [macos-15, windows-latest, ubuntu-latest]
runs-on: ${{ matrix.os }}
timeout-minutes: 30
steps:
- uses: actions/checkout@v7
- uses: actions/setup-java@v5
with:
distribution: temurin
java-version: 21
- uses: gradle/actions/setup-gradle@v6
- name: Create portable application image
run: ./gradlew --dependency-verification=strict :composeApp:createDistributable
- name: Upload portable application image
uses: actions/upload-artifact@v7
with:
name: smartmovie-${{ runner.os }}-ci
path: multiplatform/composeApp/build/compose/binaries/main/app/
if-no-files-found: error
retention-days: 7