name: Samples Scala/sbt

on:
  push:
    paths:
      - 'samples/client/petstore/scala**'
      - 'samples/server/petstore/scala**'
      - 'samples/client/petstore/java/okhttp-gson/**'
  pull_request:
    paths:
      - 'samples/client/petstore/scala**'
      - 'samples/server/petstore/scala**'
      - 'samples/client/petstore/java/okhttp-gson/**'
jobs:
  build:
    name: Build sbt/Scala client, servers
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        sample:
          # clients
          - 'samples/client/petstore/java/okhttp-gson'
          - samples/client/petstore/scalaz
          #- samples/client/petstore/scala-sttp # won't pass while the same tests in circleci pass
          # servers
          - samples/server/petstore/scala-lagom-server
          - samples/server/petstore/scala-play-server
          - samples/server/petstore/scala-akka-http-server
          - samples/server/petstore/scalatra
          - samples/server/petstore/scala-finch # cannot be tested with jdk11
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-java@v3
        with:
          distribution: 'temurin'
          java-version: 8
      - name: Cache maven dependencies
        uses: actions/cache@v3
        env:
          cache-name: maven-repository
        with:
          path: |
            ~/.ivy2
          key: ${{ runner.os }}-${{ github.job }}-${{ env.cache-name }}-${{ hashFiles('**/build.sbt') }}
      - name: Build and test
        working-directory: ${{ matrix.sample }}
        run: sbt -v +test
