name: Integration Test Runner JDK17

on:
  workflow_dispatch:
  schedule:
#    Daily at 17:00 UTC (10.30 PM SL time)
    - cron:  '0 17 * * *'


env:
  MAVEN_OPTS: -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false -Dmaven.wagon.http.retryHandler.class=standard -Dmaven.wagon.http.retryHandler.count=3


jobs:
  build:
    runs-on: ubuntu-latest

    env:
      JAVA_TOOL_OPTIONS: "-Djdk.util.zip.disableZip64ExtraFieldValidation=true -Djdk.nio.zipfs.allowDotZipEntry=true"

    steps:
      - name: Checkout repository code
        uses: actions/checkout@v4
      - name: Set up Adopt JDK 11
        uses: actions/setup-java@v4
        with:
          java-version: "11"
          distribution: "adopt"
      - name: Product-IS build with JDK 11 without Integration Tests
        run: |
          mvn clean install --batch-mode -Dmaven.test.skip=true | tee mvn-build.log
      - name: Set up Adopt JDK 17
        uses: actions/setup-java@v4
        with:
          java-version: "17"
          distribution: "adopt"
      - name: Product-IS build with JDK 17 with Integration Tests
        run: |
          ls
          cd modules/integration/
          mvn clean install --batch-mode | tee mvn-build.log
          
          PR_BUILD_STATUS=$(cat mvn-build.log | grep "\[INFO\] BUILD" | grep -oE '[^ ]+$')
          PR_TEST_RESULT=$(sed -n -e '/\[INFO\] Results:/,/\[INFO\] Tests run:/ p' mvn-build.log)
          
          PR_BUILD_FINAL_RESULT=$(
            echo "==========================================================="
            echo "product-is BUILD $PR_BUILD_STATUS"
            echo "=========================================================="
            echo ""
            echo "$PR_TEST_RESULT"
          )
          
          PR_BUILD_RESULT_LOG_TEMP=$(echo "$PR_BUILD_FINAL_RESULT" | sed 's/$/%0A/')
          PR_BUILD_RESULT_LOG=$(echo $PR_BUILD_RESULT_LOG_TEMP)
          echo "::warning::$PR_BUILD_RESULT_LOG"
          
          PR_BUILD_SUCCESS_COUNT=$(grep -o -i "\[INFO\] BUILD SUCCESS" mvn-build.log | wc -l)
          if [ "$PR_BUILD_SUCCESS_COUNT" != "17" ]; then
            echo "Success Count $PR_BUILD_SUCCESS_COUNT"
            echo "PR BUILD not successfull. Aborting."
            echo "::error::PR BUILD not successfull. Check artifacts for logs."
            exit 1
          fi
          
          echo ""
          echo "=========================================================="
          echo "Build completed"
          echo "=========================================================="
          echo ""
