name: Docker Compose Tests

on:
  pull_request:
    paths:
      - 'src/**'
      - '**.gradle'
      - '!src/main/java/resources/messages*'
      - 'exampleYmlFiles/**'
      - 'Dockerfile'
      - 'Dockerfile**'

jobs:
  test:
    runs-on: ubuntu-latest

    steps:
    - name: Checkout Repository
      uses: actions/checkout@v2

    - name: Set up Java 17
      uses: actions/setup-java@v2
      with:
        java-version: '17'
        distribution: 'adopt'

    - name: Set up Docker Buildx
      uses: docker/setup-buildx-action@v1

    - name: Run Docker Compose Tests
      run: |
        chmod +x ./gradlew

    - name: Get version number
      id: versionNumber
      run: echo "::set-output name=versionNumber::$(./gradlew printVersion --quiet | tail -1)"


    - name: Cache Docker layers
      uses: actions/cache@v2
      with:
        path: /tmp/.buildx-cache
        key: ${{ runner.os }}-buildx-${{ steps.versionNumber.outputs.versionNumber }}
        restore-keys: |
          ${{ runner.os }}-buildx-

    - name: Install Docker Compose
      run: |
        sudo curl -L "https://github.com/docker/compose/releases/download/v2.6.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
        sudo chmod +x /usr/local/bin/docker-compose


    - name: Run Docker Compose Tests
      run: |
        chmod +x ./test.sh
        ./test.sh
