name: test-main on: push: branches: - main paths: - "gradle/**" - "**.kts" - gradle.properties - gradlew - gradlew.bat - "**.kt" - "**.java" - .github/workflows/test-main.yml pull_request: branches: - main types: - opened - synchronize - reopened paths: - "gradle/**" - "**.kts" - gradle.properties - gradlew - gradlew.bat - "**.kt" - "**.java" - .github/workflows/test-main.yml workflow_dispatch: permissions: checks: write # for action-junit-report pull-requests: write # for action-junit-report jobs: test-main: strategy: fail-fast: false matrix: # LTS versions, latest version (if exists) java-version: [ '17', '21', '25' ] # Minimum version, latest release version, latest pre-release version (if exists) kotlin: ['2.1.21', '2.2.21', '2.3.0-RC2'] env: KOTLIN_VERSION: ${{ matrix.kotlin }} name: "Kotlin ${{ matrix.kotlin }} - Java ${{ matrix.java-version }}" runs-on: ubuntu-latest timeout-minutes: 15 steps: - name: Checkout uses: actions/checkout@v6 - name: 'Set up java ${{ matrix.java-version }}' uses: actions/setup-java@v5 with: java-version: '${{ matrix.java-version }}' distribution: 'corretto' - name: Setup Gradle uses: gradle/actions/setup-gradle@v5 - name: Test run: ./gradlew test - name: Publish Test Report uses: mikepenz/action-junit-report@v6 if: always() with: report_paths: '**/build/test-results/test/TEST-*.xml'