da96ceef8e
kotlinx-coroutines has since started publishing more native build targets since we first became multiplatform. This commit ensures we also build native targets for the platforms that were previously missing, namely: - androidNativeArm32 - androidNativeArm64 - androidNativeX64 - androidNativeX86 - linuxArm64 - wasmJs This ensures that we are now supporting all three tiers of Kotlin/Native target support. See: https://kotlinlang.org/docs/native-target-support.html
130 lines
4.3 KiB
YAML
130 lines
4.3 KiB
YAML
name: CI
|
|
|
|
on:
|
|
push:
|
|
branches: [ "master" ]
|
|
pull_request:
|
|
branches: [ "master" ]
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
build:
|
|
name: Build
|
|
runs-on: ${{ matrix.os }}
|
|
|
|
strategy:
|
|
matrix:
|
|
include:
|
|
- os: ubuntu-latest
|
|
tasks: build
|
|
|
|
- os: macos-latest
|
|
tasks: >
|
|
iosX64Test
|
|
macosX64Test
|
|
tvosX64Test
|
|
watchosX64Test
|
|
|
|
- os: windows-latest
|
|
tasks: mingwX64Test
|
|
|
|
steps:
|
|
- name: Checkout Project
|
|
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
|
|
|
|
- name: Validate Gradle Wrapper
|
|
uses: gradle/wrapper-validation-action@699bb18358f12c5b78b37bb0111d3a0e2276e0e2 # v2.1.1
|
|
|
|
- uses: actions/cache@ab5e6d0c87105b4c9c2047343972218f562e4319 # v4.0.1
|
|
with:
|
|
path: |
|
|
~/.konan
|
|
key: ${{ runner.os }}-${{ hashFiles('**/.lock') }}
|
|
|
|
- name: Setup JDK
|
|
uses: actions/setup-java@9704b39bf258b59bc04b50fa2dd55e9ed76b47a8 # v4.1.0
|
|
with:
|
|
distribution: temurin
|
|
java-version: 8
|
|
|
|
- name: Setup Gradle
|
|
uses: gradle/actions/setup-gradle@417ae3ccd767c252f5661f1ace9f835f9654f2b5 # v3.1.0
|
|
|
|
- name: Build with Gradle Wrapper
|
|
run: ./gradlew ${{ matrix.tasks }}
|
|
|
|
publish:
|
|
name: Publish
|
|
runs-on: ${{ matrix.os }}
|
|
|
|
needs: build
|
|
if: github.ref == 'refs/heads/master' && github.event_name == 'push' && needs.build.result == 'success'
|
|
|
|
strategy:
|
|
matrix:
|
|
include:
|
|
- os: ubuntu-latest
|
|
tasks: >
|
|
publishAndroidNativeArm32PublicationToMavenRepository
|
|
publishAndroidNativeArm64PublicationToMavenRepository
|
|
publishAndroidNativeX64PublicationToMavenRepository
|
|
publishAndroidNativeX86PublicationToMavenRepository
|
|
publishJsPublicationToMavenRepository
|
|
publishJvmPublicationToMavenRepository
|
|
publishKotlinMultiplatformPublicationToMavenRepository
|
|
publishLinuxArm64PublicationToMavenRepository
|
|
publishLinuxX64PublicationToMavenRepository
|
|
publishWasmJsPublicationToMavenRepository
|
|
|
|
- os: windows-latest
|
|
tasks: publishMingwX64PublicationToMavenRepository
|
|
|
|
- os: macos-latest
|
|
tasks: >
|
|
publishIosArm64PublicationToMavenRepository
|
|
publishIosSimulatorArm64PublicationToMavenRepository
|
|
publishIosX64PublicationToMavenRepository
|
|
publishMacosArm64PublicationToMavenRepository
|
|
publishMacosX64PublicationToMavenRepository
|
|
publishTvosArm64PublicationToMavenRepository
|
|
publishTvosSimulatorArm64PublicationToMavenRepository
|
|
publishTvosX64PublicationToMavenRepository
|
|
publishWatchosArm32PublicationToMavenRepository
|
|
publishWatchosArm64PublicationToMavenRepository
|
|
publishWatchosDeviceArm64PublicationToMavenRepository
|
|
publishWatchosSimulatorArm64PublicationToMavenRepository
|
|
publishWatchosX64PublicationToMavenRepository
|
|
|
|
steps:
|
|
- name: Checkout Project
|
|
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
|
|
|
|
- name: Validate Gradle Wrapper
|
|
uses: gradle/wrapper-validation-action@699bb18358f12c5b78b37bb0111d3a0e2276e0e2 # v2.1.1
|
|
|
|
- uses: actions/cache@ab5e6d0c87105b4c9c2047343972218f562e4319 # v4.0.1
|
|
with:
|
|
path: |
|
|
~/.konan
|
|
key: ${{ runner.os }}-${{ hashFiles('**/.lock') }}
|
|
|
|
- name: Setup JDK
|
|
uses: actions/setup-java@9704b39bf258b59bc04b50fa2dd55e9ed76b47a8 # v4.1.0
|
|
with:
|
|
distribution: temurin
|
|
java-version: 8
|
|
|
|
- name: Setup Gradle
|
|
uses: gradle/actions/setup-gradle@417ae3ccd767c252f5661f1ace9f835f9654f2b5 # v3.1.0
|
|
|
|
- name: Publish with Gradle Wrapper
|
|
run: ./gradlew ${{ matrix.tasks }}
|
|
env:
|
|
ORG_GRADLE_PROJECT_ossrhUsername: ${{ secrets.OSSRH_USERNAME }}
|
|
ORG_GRADLE_PROJECT_ossrhPassword: ${{ secrets.OSSRH_PASSWORD }}
|
|
ORG_GRADLE_PROJECT_signingKeyId: ${{ secrets.SIGNING_KEY_ID }}
|
|
ORG_GRADLE_PROJECT_signingKey: ${{ secrets.SIGNING_KEY }}
|
|
ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.SIGNING_PASSWORD }}
|