Skip to content

[Feature]: Improvements to the picker state management #7

[Feature]: Improvements to the picker state management

[Feature]: Improvements to the picker state management #7

name: CI - Compose Multiplatform TimePicker (Build & Test)
on:
pull_request:
branches: [ main ]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: read
env:
MODULE: ":datetimepicker"
jobs:
linux-builds:
name: Linux • ${{ matrix.target }}
runs-on: ubuntu-latest
timeout-minutes: 15
strategy:
fail-fast: false
matrix:
target: [ android, wasm, desktop ]
steps:
- uses: actions/checkout@v4
- uses: gradle/wrapper-validation-action@v2
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
cache: 'gradle'
# Android Set Up
- name: Set up Android SDK
if: matrix.target == 'android'
uses: android-actions/setup-android@v3
- name: Install Android build tools
if: matrix.target == 'android'
run: |
sdkmanager "platform-tools" \
"platforms;android-34" \
"build-tools;34.0.0" || true
yes | sdkmanager --licenses || true
# Android Build/Unit Test
- name: Gradle Build • Android
if: matrix.target == 'android'
uses: gradle/gradle-build-action@v3
with:
arguments: |
${{ env.MODULE }}:clean
${{ env.MODULE }}:assembleRelease
${{ env.MODULE }}:testReleaseUnitTest
# Web(WASM) Build/Test
- name: Gradle Build • Web (WASM)
if: matrix.target == 'wasm'
uses: gradle/gradle-build-action@v3
with:
arguments: |
${{ env.MODULE }}:clean
${{ env.MODULE }}:wasmJsBrowserDistribution
${{ env.MODULE }}:wasmJsTest
# Desktop(JVM) Build/Test
- name: Gradle Build • Desktop (JVM)
if: matrix.target == 'desktop'
uses: gradle/gradle-build-action@v3
with:
arguments: |
${{ env.MODULE }}:clean
${{ env.MODULE }}:desktopJar
${{ env.MODULE }}:desktopTest
ios-build-and-test:
name: macOS • iOS Simulator Test
runs-on: macos-14
timeout-minutes: 15
steps:
- uses: actions/checkout@v4
- uses: gradle/wrapper-validation-action@v2
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
cache: 'gradle'
- name: Boot iOS Simulator (iPhone 15)
run: |
LATEST_IOS=$(xcrun simctl list runtimes | grep "iOS" | tail -n 1 | sed -E 's/.*iOS ([0-9]+\.[0-9]+).*/iOS \1/')
echo "Using iOS runtime: $LATEST_IOS"
xcrun simctl create "CI-iPhone15" "iPhone 15" "$LATEST_IOS" || true
xcrun simctl boot "CI-iPhone15" || true
xcrun simctl list | head -n 50
# iOS Simulator Unit Test
- name: Gradle Build & Test • iOS
uses: gradle/gradle-build-action@v3
with:
arguments: |
${{ env.MODULE }}:clean
${{ env.MODULE }}:iosSimulatorArm64Test