name: "Build and test Maven GitHub action"

on:
  pull_request:
    branches: [ master ]

jobs:
  build_and_test:
    name: "Set up Maven and validate"
    runs-on: ubuntu-latest
    strategy:
      matrix:
        maven_version: [3.1.1, 3.2.5, 3.3.9, 3.5.4, 3.6.3, 3.8.1]

    steps:
      - name: "Checkout code"
        uses: actions/checkout@v2

      - name: "Set Node.js"
        uses: actions/setup-node@v1
        with:
          node-version: 12

      - name: "Install"
        run: npm install

      - name: "Run build"
        run: npm run build

      - name: "Install ncc"
        run: npm i -g @vercel/ncc

      - name: "Run distribution"
        run: npm run build-dist

      - name: "Set up JDK"
        uses: actions/setup-java@v2
        with:
          java-version: "8"
          distribution: "adopt"

      - name: "Set Maven from local GitHub action"
        uses: ./
        with:
          maven-version: ${{ matrix.maven_version }}

      - name: "Validate Maven version"
        run: mvn -v | head -1 | grep "${{ matrix.maven_version }}"

  build_and_commit:
    name: "Set up Maven and validate"
    runs-on: ubuntu-latest

    steps:
      - name: "Checkout code"
        uses: actions/checkout@v2

      - name: "Set Node.js"
        uses: actions/setup-node@v1
        with:
          node-version: 12

      - name: "Install"
        run: npm install

      - name: "Commit files"
        run: |
          git config --local user.email "$(git log --format='%ae' HEAD^!)"
          git config --local user.name "$(git log --format='%an' HEAD^!)"
          git remote add github "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$GITHUB_REPOSITORY.git"
          git pull github {{ github.head_ref }} --ff-only
          git add .
          if [ -z "$(git status --porcelain)" ]; then
            exit 0
          fi
          git commit -m "Fix a[href] in Webflow exported html"
          git push github HEAD:${{ github.head_ref }}