name: bld-ci

on: [push, pull_request, workflow_dispatch]

env:
  BITLY_ACCESS_TOKEN: ${{ secrets.BITLY_ACCESS_TOKEN }}
  COVERAGE_JDK: "21"
  COVERAGE_KOTLIN: "2.0.0"
  KOTLIN_HOME: /usr/share/kotlinc

jobs:
  build-bld-project:
    runs-on: ubuntu-latest

    strategy:
      matrix:
        java-version: [17, 21, 22]
        kotlin-version: [1.19.24, 2.0.20]

    steps:
      - name: Checkout source repository
        uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Set up JDK ${{ matrix.java-version }} with Kotlin ${{ matrix.kotlin-version }}
        uses: actions/setup-java@v4
        with:
          distribution: "zulu"
          java-version: ${{ matrix.java-version }}

      - name: Download dependencies
        run: ./bld download

      - name: Compile source
        run: ./bld compile

      - name: Run tests
        run: ./bld jacoco

      - name: Remove pom.xml
        if: success() && matrix.java-version == env.COVERAGE_JDK && matrix.kotlin-version == env.COVERAGE_KOTLIN
        run: rm -rf pom.xml

      - name: SonarCloud Scan
        uses: sonarsource/sonarcloud-github-action@master
        if: success() && matrix.java-version == env.COVERAGE_JDK && matrix.kotlin-version == env.COVERAGE_KOTLIN
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
