Skip to content

Kotlin 2.0.0

Kotlin 2.0.0 #390

Workflow file for this run

name: Run tests
concurrency:
group: run-tests-${{ github.ref }}
cancel-in-progress: true
on:
workflow_dispatch:
pull_request:
branches:
- master
- kotlin/**
env:
GRADLE_OPTS: -Dorg.gradle.parallel=true -Dorg.gradle.caching=true
JAVA_VERSION: '17'
XCODE_VERSION: '15.2'
XCODEBUILD_DESTINATION_iOS: platform=iOS Simulator,name=iPhone 14 Pro
XCODEBUILD_DESTINATION_macOS: platform=OS X
XCODEBUILD_DESTINATION_tvOS: platform=tvOS Simulator,name=Apple TV 4K (3rd generation)
XCODEBUILD_DESTINATION_watchOS: platform=watchOS Simulator,name=Apple Watch Series 8 (45mm)
jobs:
run-kotlin-tests:
if: github.event_name != 'pull_request' || github.event.pull_request.draft == false
strategy:
fail-fast: false
matrix:
module: [ annotations, compiler, compiler-embeddable, core, gradle-plugin, ksp ]
name: ${{ matrix.module }}
runs-on: macos-14
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Xcode
uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: ${{ env.XCODE_VERSION }}
- name: Gradle Wrapper Validation
uses: gradle/wrapper-validation-action@v2
- name: Setup JDK
uses: actions/setup-java@v4
with:
distribution: zulu
java-version: ${{ env.JAVA_VERSION }}
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v3
with:
cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }}
- name: Cache Konan
uses: ./.github/actions/cache-konan
- name: Run tests
env:
GRADLE_MODULE: ${{ format(':kmp-nativecoroutines-{0}', matrix.module) }}
run: ./gradlew $GRADLE_MODULE:check
- name: Archive reports
if: failure()
uses: actions/upload-artifact@v4
with:
name: kmp-nativecoroutines-${{ matrix.module }}-reports
path: '*/build/reports/'
run-idea-tests:
if: github.event_name != 'pull_request' || github.event.pull_request.draft == false
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Gradle Wrapper Validation
uses: gradle/wrapper-validation-action@v2
- name: Setup JDK
uses: actions/setup-java@v4
with:
distribution: zulu
java-version: ${{ env.JAVA_VERSION }}
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v3
with:
cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }}
- name: Verify plugin
run: ./gradlew :kmp-nativecoroutines-idea-plugin:verifyPlugin
- name: Run plugin verifier
run: ./gradlew :kmp-nativecoroutines-idea-plugin:runPluginVerifier
- name: Run binary compatibility validator
run: ./gradlew :kmp-nativecoroutines-idea-plugin:apiCheck
run-swift-tests:
if: github.event_name != 'pull_request' || github.event.pull_request.draft == false
strategy:
fail-fast: false
matrix:
platform: [ iOS, macOS, tvOS, watchOS ]
implementation: [ Async, Combine, RxSwift ]
name: ${{ format('{0} {1}', matrix.implementation, matrix.platform) }}
runs-on: macos-14
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Xcode
uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: ${{ env.XCODE_VERSION }}
- name: Run tests
env:
XCODEBUILD_SCHEME: ${{ format('KMPNativeCoroutines{0}', matrix.implementation) }}
XCODEBUILD_DESTINATION: ${{ env[format('XCODEBUILD_DESTINATION_{0}', matrix.platform)] }}
run: >-
xcodebuild test
-project KMPNativeCoroutines.xcodeproj
-scheme "$XCODEBUILD_SCHEME"
-destination "$XCODEBUILD_DESTINATION"
run-integration-tests:
if: github.event_name != 'pull_request' || github.event.pull_request.draft == false
needs:
- run-kotlin-tests
- run-swift-tests
strategy:
fail-fast: false
matrix:
platform: [ iOS, macOS, tvOS, watchOS ]
embeddable-compiler: [ true, false ]
name: ${{ format('Sample {0} (embeddable {1})', matrix.platform, matrix.embeddable-compiler) }}
runs-on: macos-14
env:
XCODEBUILD_SCHEME_iOS: iOS App
XCODEBUILD_SCHEME_macOS: macOS App
XCODEBUILD_SCHEME_tvOS: tvOS App
XCODEBUILD_SCHEME_watchOS: watchOS Tests
defaults:
run:
working-directory: sample
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Gradle Wrapper Validation
uses: gradle/wrapper-validation-action@v2
- name: Setup Xcode
uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: ${{ env.XCODE_VERSION }}
- name: Setup JDK
uses: actions/setup-java@v4
with:
distribution: zulu
java-version: ${{ env.JAVA_VERSION }}
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v3
with:
cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }}
- name: Cache Konan
uses: ./.github/actions/cache-konan
- name: Set kotlin.native.useEmbeddableCompilerJar
env:
KOTLIN_NATIVE_EMBEDDABLE_COMPILER: ${{ matrix.embeddable-compiler }}
run: echo "kotlin.native.useEmbeddableCompilerJar=$KOTLIN_NATIVE_EMBEDDABLE_COMPILER" >> gradle.properties
- name: Run tests
env:
XCODEBUILD_SCHEME: ${{ env[format('XCODEBUILD_SCHEME_{0}', matrix.platform)] }}
XCODEBUILD_DESTINATION: ${{ env[format('XCODEBUILD_DESTINATION_{0}', matrix.platform)] }}
run: >-
xcodebuild test
-project KMPNativeCoroutinesSample.xcodeproj
-scheme "$XCODEBUILD_SCHEME"
-destination "$XCODEBUILD_DESTINATION"