name: Samples Java Play Framework

on:
  push:
    paths:
      - 'samples/server/petstore/java-play-framework**'
  pull_request:
    paths:
      - 'samples/server/petstore/java-play-framework**'
jobs:
  build:
    name: Build Java Play Framework
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        sample:
          # servers
          - samples/server/petstore/java-play-framework
          - samples/server/petstore/java-play-framework-api-package-override
          - samples/server/petstore/java-play-framework-async
          - samples/server/petstore/java-play-framework-controller-only
          - samples/server/petstore/java-play-framework-fake-endpoints
          - samples/server/petstore/java-play-framework-fake-endpoints-with-security
          - samples/server/petstore/java-play-framework-no-bean-validation
          - samples/server/petstore/java-play-framework-no-exception-handling
          - samples/server/petstore/java-play-framework-no-interface
          - samples/server/petstore/java-play-framework-no-nullable
          - samples/server/petstore/java-play-framework-no-swagger-ui
          - samples/server/petstore/java-play-framework-no-wrap-calls
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-java@v3
        with:
          distribution: 'temurin'
          java-version: 11
      - name: Cache maven dependencies
        uses: actions/cache@v3
        env:
          cache-name: maven-repository
        with:
          path: |
            ~/.m2
          key: ${{ runner.os }}-${{ github.job }}-${{ env.cache-name }}-${{ hashFiles('**/pom.xml') }}
      - name: Build
        working-directory: ${{ matrix.sample }}
        run: mvn clean package
