name: CI on: push: branches: [ "master" ] pull_request: branches: [ "master" ] permissions: contents: read jobs: build: strategy: matrix: include: - os: ubuntu-latest tasks: build - os: macos-latest tasks: > iosX64Test macosX64Test tvosX64Test watchosX64Test - os: windows-latest tasks: mingwX64Test runs-on: ${{ matrix.os }} steps: - name: Checkout Project uses: actions/checkout@v4 - name: Validate Gradle Wrapper uses: gradle/wrapper-validation-action@v2 - uses: actions/cache@v4 with: path: | ~/.konan key: ${{ runner.os }}-${{ hashFiles('**/.lock') }} - name: Setup JDK uses: actions/setup-java@v4 with: distribution: temurin java-version: 8 - name: Setup Gradle uses: gradle/actions/setup-gradle@v3 - name: Build with Gradle Wrapper run: ./gradlew ${{ matrix.tasks }} publish: 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 publishWatchosSimulatorArm64PublicationToMavenRepository publishWatchosX64PublicationToMavenRepository runs-on: ${{ matrix.os }} 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 }} steps: - name: Checkout Project uses: actions/checkout@v4 - name: Validate Gradle Wrapper uses: gradle/wrapper-validation-action@v2 - uses: actions/cache@v4 with: path: | ~/.konan key: ${{ runner.os }}-${{ hashFiles('**/.lock') }} - name: Setup JDK uses: actions/setup-java@v4 with: distribution: temurin java-version: 8 - name: Setup Gradle uses: gradle/actions/setup-gradle@v3 - name: Publish with Gradle Wrapper run: ./gradlew ${{ matrix.tasks }}