Skip to content

Update dependency androidx.compose.runtime:runtime to v1.10.5 (#1104) #2654

Update dependency androidx.compose.runtime:runtime to v1.10.5 (#1104)

Update dependency androidx.compose.runtime:runtime to v1.10.5 (#1104) #2654

Workflow file for this run

name: build
on:
pull_request: {}
workflow_dispatch: {}
push:
branches:
- 'trunk'
tags-ignore:
- '**'
env:
GRADLE_OPTS: "-Dkotlin.incremental=false -Dorg.gradle.logging.stacktrace=full"
jobs:
tty-test-binaries:
runs-on: macos-15
steps:
- uses: actions/checkout@v6
- uses: actions/setup-java@v5
with:
distribution: 'zulu'
java-version-file: .github/workflows/.java-version
- run: ./gradlew :mosaic-tty:installJvmTestDistribution :mosaic-tty:linkNativeDebugTests
- uses: actions/upload-artifact@v7
with:
name: mosaic-tty-jvm-tests
path: mosaic-tty/build/install/jvmTest
if-no-files-found: error
- uses: actions/upload-artifact@v7
with:
name: mosaic-tty-native-tests
path: mosaic-tty/build/bin
if-no-files-found: error
tty-tests:
needs:
- tty-test-binaries
strategy:
fail-fast: false
matrix:
platform:
- os: macos-14
target: macosArm64
- os: macos-15
target: macosArm64
- os: macos-15-intel
target: macosX64
- os: macos-26
target: macosArm64
- os: macos-26-intel
target: macosX64
- os: ubuntu-22.04
target: linuxX64
- os: ubuntu-22.04-arm
target: linuxArm64
- os: ubuntu-24.04
target: linuxX64
- os: ubuntu-24.04-arm
target: linuxArm64
- os: windows-2022
target: mingwX64
- os: windows-2025
target: mingwX64
- os: windows-11-arm
target: skip
tests:
- type: native
- type: java
version: 11
- type: java
version: 17
- type: java
version: 21
- type: java
version: latest
exclude:
# No Windows ARM Kotlin native target yet.
- platform:
os: windows-11-arm
target: skip
tests:
type: native
# No Windows ARM JDKs for these versions yet.
- platform:
os: windows-11-arm
target: skip
tests:
type: java
version: 8
- platform:
os: windows-11-arm
target: skip
tests:
type: java
version: 11
- platform:
os: windows-11-arm
target: skip
tests:
type: java
version: latest
runs-on: ${{ matrix.platform.os }}
timeout-minutes: 5
steps:
### NATIVE
- uses: actions/download-artifact@v8
if: matrix.tests.type == 'native'
with:
name: mosaic-tty-native-tests
- name: Set executable bit
if: ${{ matrix.tests.type == 'native' && !startsWith(matrix.platform.os, 'windows-') }}
run: chmod +x ${{ matrix.platform.target }}/debugTest/test.*
- run: ${{ matrix.platform.target }}/debugTest/test.*
if: matrix.tests.type == 'native'
shell: bash
### JAVA
- uses: actions/checkout@v6
if: ${{ matrix.tests.type == 'java' && matrix.tests.version == 'latest' }}
with:
sparse-checkout: .github/workflows/.java-version
sparse-checkout-cone-mode: false
- uses: actions/setup-java@v5
if: ${{ matrix.tests.type == 'java' && matrix.tests.version == 'latest' }}
with:
distribution: 'zulu'
java-version-file: .github/workflows/.java-version
- uses: actions/setup-java@v5
if: ${{ matrix.tests.type == 'java' && matrix.tests.version != 'latest' }}
with:
distribution: 'zulu'
java-version: ${{ matrix.tests.version }}
- uses: actions/download-artifact@v8
if: matrix.tests.type == 'java'
with:
name: mosaic-tty-jvm-tests
- name: Set executable bit
if: ${{ matrix.tests.type == 'java' && !startsWith(matrix.platform.os, 'windows-') }}
run: chmod +x bin/mosaic-tty-test
- run: bin/mosaic-tty-test
if: matrix.tests.type == 'java'
# Due to https://youtrack.jetbrains.com/issue/KT-74731, we don't have a good way of packaging
# up the additional test runs for use in the above matrix-based runner. For now, run them through
# Gradle on a single OS and single JDK just to get some coverage.
tty-shrinker-tests:
runs-on: macos-15
steps:
- uses: actions/checkout@v6
- uses: actions/setup-java@v5
with:
distribution: 'zulu'
java-version-file: .github/workflows/.java-version
- run: >
./gradlew
--continue
:mosaic-tty:jvmProGuardTest
:mosaic-tty:jvmR8Test
build:
runs-on: macos-15
steps:
- uses: actions/checkout@v6
- uses: actions/setup-java@v5
with:
distribution: 'zulu'
java-version-file: .github/workflows/.java-version
- uses: gradle/actions/setup-gradle@v5
# Disabling allTests should be enough, but https://youtrack.jetbrains.com/issue/KT-74509
# mosaic-tty runs its tests above. We only run jvmTest otherwise as code is all common.
- run: >
./gradlew
--continue
build
-x allTests
-x jvmProGuardTest
-x jvmR8Test
-x linuxX64Test
-x macosArm64Test
-x macosX64Test
-x mingwX64Test
jvmTest
-x :mosaic-tty:jvmTest
docs:
runs-on: macos-15
steps:
- uses: actions/checkout@v6
- uses: actions/setup-java@v5
with:
distribution: 'zulu'
java-version-file: .github/workflows/.java-version
- uses: gradle/actions/setup-gradle@v5
- run: ./gradlew dokkaGenerate
- uses: actions/upload-artifact@v7
with:
name: html-docs
path: build/dokka/html/
if-no-files-found: error
samples:
strategy:
fail-fast: false
matrix:
platform:
- os: macos-15
target: macosArm64
- os: ubuntu-24.04
target: linuxX64
- os: windows-2025
target: mingwX64
sample:
- counter
- jest
runs-on: ${{ matrix.platform.os }}
steps:
- uses: actions/checkout@v6
- uses: actions/setup-java@v5
with:
distribution: 'zulu'
java-version-file: .github/workflows/.java-version
- uses: gradle/actions/setup-gradle@v5
- run: |
./gradlew -p samples/${{ matrix.sample }} installJvmDist linkReleaseExecutable${{ matrix.platform.target }}
./samples/${{ matrix.sample }}/build/install/${{ matrix.sample }}-jvm/bin/${{ matrix.sample }}
./samples/${{ matrix.sample }}/build/bin/${{ matrix.platform.target }}/releaseExecutable/${{ matrix.sample }}.*
shell: bash
final-status:
if: always()
runs-on: ubuntu-slim
needs:
- docs
- tty-tests
- tty-shrinker-tests
- build
- samples
steps:
- name: Check
run: |
results=$(tr -d '\n' <<< '${{ toJSON(needs.*.result) }}')
if ! grep -q -v -E '(failure|cancelled)' <<< "$results"; then
echo "One or more required jobs failed"
exit 1
fi
publish:
if: ${{ github.ref == 'refs/heads/trunk' && github.repository == 'JakeWharton/mosaic' }}
runs-on: macos-15
needs:
- final-status
steps:
- uses: actions/checkout@v6
- uses: actions/setup-java@v5
with:
distribution: 'zulu'
java-version-file: .github/workflows/.java-version
- uses: gradle/actions/setup-gradle@v5
- run: ./gradlew publish
env:
ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.SONATYPE_CENTRAL_USERNAME }}
ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.SONATYPE_CENTRAL_PASSWORD }}
ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.GPG_PRIVATE_KEY }}
- uses: actions/download-artifact@v8
with:
name: html-docs
path: html-docs
- uses: JamesIves/github-pages-deploy-action@releases/v3
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
BRANCH: site
FOLDER: html-docs
TARGET_FOLDER: docs/latest/
CLEAN: true