# This workflow will build a Java project with Maven
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven

name: E2E Tests

on:
  push:
    branches:
      - test/e2e
    paths-ignore:
      - 'docs/**'
  pull_request:
    branches:
      - cluster_new
    paths-ignore:
      - 'docs/**'
  # allow manually run the action:
  workflow_dispatch:

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

env:
  MAVEN_OPTS: -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false -Dmaven.wagon.http.retryHandler.class=standard -Dmaven.wagon.http.retryHandler.count=3

jobs:
  E2E:
    runs-on: ubuntu-latest
    strategy:
      fail-fast: true
      matrix:
        case:
          - cli
    steps:
      - uses: actions/checkout@v2

      - uses: actions/cache@v2
        with:
          path: ~/.m2
          key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
          restore-keys: ${{ runner.os }}-m2

      - name: Build Distribution Zip
        run: ./mvnw -B -DskipTests clean install

      - name: Build Docker Image
        run: |
          docker build . -f docker/src/main/Dockerfile-single -t "iotdb:$GITHUB_SHA"
          docker images

      - name: Run Test Case ${{ matrix.case }}
        run: bash test/e2e/cases/${{ matrix.case }}/run.sh

      - name: Clean Up
        if: ${{ always() }}
        run: bash test/e2e/cases/${{ matrix.case }}/cleanup.sh

      - name: TestContainer
        run: |
          mvn -B -T 4 integration-test -pl testcontainer
