🎉 New sample project #30
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: ⚗️ FileKit CI | |
| on: | |
| push: | |
| branches: [ main ] | |
| pull_request: | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| build: | |
| name: 💆♀️ Build FileKit | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: 🛎️ Check out repository | |
| uses: actions/checkout@v6 | |
| - name: 🍉 Configure JDK 21 | |
| uses: actions/setup-java@v5 | |
| with: | |
| distribution: 'temurin' | |
| java-version: '21' | |
| - name: 🐘 Setup Gradle | |
| uses: gradle/actions/setup-gradle@v5 | |
| - name: 🔨 Build project | |
| run: ./gradlew assemble | |
| test-desktop: | |
| name: 🖥️ Test Desktop | |
| needs: build | |
| strategy: | |
| matrix: | |
| os: [ubuntu-latest, windows-latest, macos-latest] | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - name: 🛎️ Check out repository | |
| uses: actions/checkout@v6 | |
| - name: 🍉 Configure JDK 21 | |
| uses: actions/setup-java@v5 | |
| with: | |
| distribution: 'temurin' | |
| java-version: '21' | |
| - name: 🐘 Setup Gradle | |
| uses: gradle/actions/setup-gradle@v5 | |
| - name: 🧪 Run JVM Tests | |
| run: ./gradlew jvmTest | |
| test-android: | |
| name: 🤖 Test Android | |
| needs: build | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: 🛎️ Check out repository | |
| uses: actions/checkout@v6 | |
| - name: 🍉 Configure JDK 21 | |
| uses: actions/setup-java@v5 | |
| with: | |
| distribution: 'temurin' | |
| java-version: '21' | |
| - name: 🐘 Setup Gradle | |
| uses: gradle/actions/setup-gradle@v5 | |
| - name: 🧪 Run Android Unit Tests | |
| run: ./gradlew testAndroidHostTest | |
| test-ios: | |
| name: 🍎 Test iOS | |
| needs: build | |
| runs-on: macos-latest | |
| steps: | |
| - name: 🛎️ Check out repository | |
| uses: actions/checkout@v6 | |
| - name: 🍉 Configure JDK 21 | |
| uses: actions/setup-java@v5 | |
| with: | |
| distribution: 'temurin' | |
| java-version: '21' | |
| - name: 🐘 Setup Gradle | |
| uses: gradle/actions/setup-gradle@v5 | |
| - name: 🧪 Run iOS Tests | |
| run: ./gradlew iosSimulatorArm64Test | |
| test-macos: | |
| name: 🍏 Test macOS | |
| needs: build | |
| runs-on: macos-latest | |
| steps: | |
| - name: 🛎️ Check out repository | |
| uses: actions/checkout@v6 | |
| - name: 🍉 Configure JDK 21 | |
| uses: actions/setup-java@v5 | |
| with: | |
| distribution: 'temurin' | |
| java-version: '21' | |
| - name: 🐘 Setup Gradle | |
| uses: gradle/actions/setup-gradle@v5 | |
| - name: 🧪 Run macOS Tests | |
| run: ./gradlew macosArm64Test | |
| lint: | |
| name: 🚨 Lint | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: 🛎️ Check out repository | |
| uses: actions/checkout@v6 | |
| - name: 🍉 Configure JDK 21 | |
| uses: actions/setup-java@v5 | |
| with: | |
| distribution: 'temurin' | |
| java-version: '21' | |
| - name: 📥 Download ktlint | |
| run: | | |
| curl -sSLO https://github.com/pinterest/ktlint/releases/download/1.8.0/ktlint | |
| chmod a+x ktlint | |
| sudo mv ktlint /usr/local/bin/ | |
| - name: 👮 Download ktlint-compose rules | |
| run: curl -sSLO https://github.com/mrmans0n/compose-rules/releases/download/v0.4.28/ktlint-compose-0.4.28-all.jar | |
| - name: 🚨 Run ktlint | |
| run: ktlint '**/*.kt' '**/*.kts' '!**/build/**' -R ktlint-compose-0.4.28-all.jar |