# Workflow to run tests

name: CI

on:
  push:
    branches: [ main, '[0-9]+.[0-9]+.[0-9]+-release*' ]
  pull_request:
    branches: [ main, '[0-9]+.[0-9]+.[0-9]+-release*' ]
  workflow_dispatch:
    branches: [ main, '[0-9]+.[0-9]+.[0-9]+-release*' ]

jobs:
  build-and-test:
    strategy:
      fail-fast: false
      matrix:
        os: [ ubuntu-latest, macos-latest, windows-latest ]
        is_pull_request:
          - ${{ github.event_name == 'pull_request' }}
        exclude:
          # Don't run slow targets on pull request.
          - is_pull_request: true
            os: macos-latest

    # The type of runner that the job will run on
    runs-on: ${{ matrix.os }}

    steps:
    - name: configure Pagefile
      if: matrix.os == 'windows-latest'
      uses: al-cheb/configure-pagefile-action@v1.2
      with:
        minimum-size: 8
        maximum-size: 16
        disk-root: "D:"
    - name: Setup Java 17
      uses: actions/setup-java@v1.4.3
      with:
        java-version: '17'
        java-package: jdk
        architecture: x64

    # Checkout
    - uses: actions/checkout@v2

    # Build cache
    - name: Cache Gradle Cache
      uses: actions/cache@v4
      with:
        path: ~/.gradle/caches
        key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle.kts') }}-${{ hashFiles('**/gradle.properties') }}
        # An ordered list of keys to use for restoring the cache if no cache hit occurred for key
        restore-keys: |
          ${{ runner.os }}-gradle-
    - name: Cache gradle wrapper
      uses: actions/cache@v4
      with:
        path: ~/.gradle/wrapper
        key: ${{ runner.os }}-gradle-wrapper-${{ hashFiles('gradle/wrapper/gradle-wrapper.properties') }}

    # Check API compatibility
    - name: API compatibility check
      if: matrix.os == 'ubuntu-latest'
      run: ./gradlew :api:checkApi

    # Run tests
    - name: test
      shell: bash
      run: ./gradlew --stacktrace --info check
    - name: Upload test results
      if: always()
      uses: actions/upload-artifact@v4
      with:
        name: test-reports-${{ matrix.branch }}-${{ matrix.os }}
        path: |
          compiler-plugin/build/reports
          integration-tests/build/reports
          gradle-plugin/build/reports
          common-util/build/reports
          kotlin-analysis-api/build/reports
