name: Java Client (Echo API) JDK8

on:
  push:
    paths:
      - samples/client/echo_api/java/apache-httpclient/**
      - samples/client/echo_api/java/feign-gson/**
      - samples/client/echo_api/java/okhttp-gson/**
  pull_request:
    paths:
      - samples/client/echo_api/java/apache-httpclient/**
      - samples/client/echo_api/java/feign-gson/**
      - samples/client/echo_api/java/okhttp-gson/**
jobs:
  build:
    name: Build Java Client JDK8
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        sample:
          # clients
          - samples/client/echo_api/java/apache-httpclient
          - samples/client/echo_api/java/feign-gson
          - samples/client/echo_api/java/okhttp-gson
    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: |
            ~/.m2
          key: ${{ runner.os }}-${{ github.job }}-${{ env.cache-name }}-${{ hashFiles('**/pom.xml') }}
      - name: Setup node.js
        uses: actions/setup-node@v3
      - name: Run echo server
        run: |
          git clone https://github.com/wing328/http-echo-server -b openapi-generator-test-server
          (cd http-echo-server && npm install && npm start &)
      - name: Build
        working-directory: ${{ matrix.sample }}
        run: mvn clean package
