Skip to content

feat: Kotlin Multiplatform with iOS support, Maven Central publishing, and publication-quality polish #36

feat: Kotlin Multiplatform with iOS support, Maven Central publishing, and publication-quality polish

feat: Kotlin Multiplatform with iOS support, Maven Central publishing, and publication-quality polish #36

Workflow file for this run

name: CI
on:
pull_request:
branches: [main, master]
push:
branches: [main, master]
jobs:
kotlin:
name: Kotlin
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
with:
submodules: true
- name: Validate Gradle wrapper
uses: gradle/actions/wrapper-validation@v4
- uses: actions/setup-java@v5
with:
distribution: temurin
java-version: 17
- name: Cache Gradle
uses: actions/cache@v4
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('kotlin/**/*.gradle*', 'kotlin/gradle/libs.versions.toml') }}
restore-keys: ${{ runner.os }}-gradle-
- name: Test
working-directory: kotlin
run: ./gradlew jvmTest --quiet
- name: API compatibility check
working-directory: kotlin
run: ./gradlew apiCheck --quiet
- name: Upload test results
if: always()
uses: actions/upload-artifact@v5
with:
name: kotlin-test-results
path: kotlin/build/reports/tests/
swift:
name: Swift
runs-on: macos-latest
steps:
- uses: actions/checkout@v5
with:
submodules: true
- name: Test
working-directory: swift
run: swift test
python:
name: Python
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
with:
submodules: true
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Install deps
run: pip install pytest protobuf zstandard
- name: Test
working-directory: python
run: python -m pytest tests/ -v
typescript:
name: TypeScript
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
with:
submodules: true
- uses: actions/setup-node@v5
with:
node-version: 20
- name: Install deps
working-directory: typescript
run: rm -f package-lock.json && npm install
- name: Test
working-directory: typescript
run: npx vitest run
csharp:
name: C#
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
with:
submodules: true
- uses: actions/setup-dotnet@v5
with:
dotnet-version: "9.0.x"
- name: Test
working-directory: csharp
run: dotnet test --verbosity normal