name: Java CI

on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

env:
  MAVEN_VERSION: 3.9.9

jobs:
  build:

    runs-on: ubuntu-24.04
    strategy:
      matrix:
        java:
        - '17'
        - '21'

    steps:
    - uses: actions/checkout@v5

    - name: Setup Temurin JDK
      uses: actions/setup-java@v5
      with:
        distribution: 'temurin'
        java-version: ${{ matrix.java }}

    - name: Apt update
      run: sudo apt update

    - name: Install Puppeteer's dependencies
      run: sudo apt-get install -y chromium-browser fonts-ipafont-gothic fonts-wqy-zenhei fonts-thai-tlwg fonts-kacst fonts-freefont-ttf libasound2t64 libatk1.0-0 libatk-bridge2.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates fonts-liberation libappindicator3-1 libnss3 lsb-release xdg-utils wget libappindicator3-1 libgbm1

    - name: Install Maven
      run: |
        wget --retry-connrefused --tries=5 --waitretry=5 --read-timeout=20 --timeout=15 https://archive.apache.org/dist/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.tar.gz
        tar -xzf apache-maven-${MAVEN_VERSION}-bin.tar.gz

    - name: Cache Maven packages
      uses: actions/cache@v4
      with:
        path: ~/.m2
        key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
        restore-keys: ${{ runner.os }}-m2

    - name: Build with Maven
      run: |
        java -version 
        ./apache-maven-${MAVEN_VERSION}/bin/mvn --show-version clean verify -Pjs-test
