Repository: provectus/kafka-ui
Issue: [e2e] separate e2e-checks module building and running from  the main application
Labels: type/enhancement
scope/QA

### Is your proposal related to a problem?

Problem: e2e-checks require ready Docker image of the `kafka-ui`. Being one of the submodules, it runs tests on `mvn verify`, also  it triggers on `./mvnw clean install -Pprod` and fail the installing.

### Describe the solution you'd like

- remove it as a submodule.
- create separate github workflow for running checks


### Describe alternatives you've considered

<!--
  Let us know about other solutions you've tried or researched.
-->

(Write your answer here.)

### Additional context

<!--
  Is there anything else you can add about the proposal?
  You might want to link to related issues here, if you haven't already.
-->

(Write your answer here.)

Issue comments:

Pull request review comments:

Patch that resolved the issue:
diff --git a/.github/workflows/backend.yml b/.github/workflows/backend.yml
index ae5757ce6f3..5df7b74bc08 100644
--- a/.github/workflows/backend.yml
+++ b/.github/workflows/backend.yml
@@ -4,7 +4,6 @@ on:
     types: ['opened', 'edited', 'reopened', 'synchronize']
     paths:
       - 'kafka-ui-api/**'
-      - 'kafka-ui-e2e-checks/**'
 jobs:
   build:
     runs-on: ubuntu-latest
@@ -17,14 +16,6 @@ jobs:
           restore-keys: |
             ${{ runner.os }}-maven-
       - uses: actions/checkout@v2
-      - name: Set the values
-        id: step_one
-        run: |
-           cat "./kafka-ui-e2e-checks/.env.ci" >> "./kafka-ui-e2e-checks/.env"
-      - name: pull docker
-        id: step_four
-        run: |
-          docker pull selenoid/vnc:chrome_86.0
       - name: compose app
         id: step_five
         run: |
@@ -44,29 +35,3 @@ jobs:
           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}  # Needed to get PR information, if any
           SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
         run: mvn -B verify org.sonarsource.scanner.maven:sonar-maven-plugin:sonar
-      - name: Generate allure report
-        uses: simple-elf/allure-report-action@master
-        if: always()
-        id: allure-report
-        with:
-          allure_results: ./kafka-ui-e2e-checks/allure-results
-          gh_pages: allure-results
-          allure_report: allure-report
-          subfolder: allure-results
-      - name: Deploy allure report to Github Pages
-        if: always()
-        uses: peaceiris/actions-gh-pages@v3
-        with:
-          github_token: ${{ secrets.GITHUB_TOKEN }}
-          publish_dir: allure-history
-          publish_branch: gh-pages
-          destination_dir: ./allure
-      - name: Post the link to allure report
-        if: always()
-        uses: Sibz/github-status-action@v1
-        with:
-          authToken: ${{secrets.GITHUB_TOKEN}}
-          context: 'Test report'
-          state: 'success'
-          sha: ${{ github.event.pull_request.head.sha  || github.sha }}
-          target_url: https://${{ github.repository_owner }}.github.io/kafka-ui/allure/allure-results/${{ github.run_number }}
\ No newline at end of file
diff --git a/.github/workflows/e2e-checks.yaml b/.github/workflows/e2e-checks.yaml
new file mode 100644
index 00000000000..6622c0908a9
--- /dev/null
+++ b/.github/workflows/e2e-checks.yaml
@@ -0,0 +1,68 @@
+name: e2e-checks
+on:
+  pull_request:
+    types: ['opened', 'edited', 'reopened', 'synchronize']
+    paths:
+      - 'kafka-ui-api/**'
+      - 'kafka-ui-contract/**'
+      - 'kafka-ui-react-app/**'
+      - 'kafka-ui-e2e-checks/**'
+jobs:
+  build:
+    runs-on: ubuntu-latest
+    steps:
+      - name: Cache local Maven repository
+        uses: actions/cache@v2
+        with:
+          path: ~/.m2/repository
+          key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+          restore-keys: |
+            ${{ runner.os }}-maven-
+      - uses: actions/checkout@v2
+      - name: Set the values
+        id: step_one
+        run: |
+          cat "./kafka-ui-e2e-checks/.env.ci" >> "./kafka-ui-e2e-checks/.env"
+      - name: pull docker
+        id: step_four
+        run: |
+          docker pull selenoid/vnc:chrome_86.0
+      - name: compose app
+        id: step_five
+        run: |
+          docker-compose -f ./docker/kafka-ui.yaml up -d
+      - name: Set up JDK 1.13
+        uses: actions/setup-java@v1
+        with:
+          java-version: 1.13
+      - name: Build and analyze
+        env:
+          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}  # Needed to get PR information, if any
+          SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
+        run: mvn -B verify org.sonarsource.scanner.maven:sonar-maven-plugin:sonar
+      - name: Generate allure report
+        uses: simple-elf/allure-report-action@master
+        if: always()
+        id: allure-report
+        with:
+          allure_results: ./kafka-ui-e2e-checks/allure-results
+          gh_pages: allure-results
+          allure_report: allure-report
+          subfolder: allure-results
+      - name: Deploy allure report to Github Pages
+        if: always()
+        uses: peaceiris/actions-gh-pages@v3
+        with:
+          github_token: ${{ secrets.GITHUB_TOKEN }}
+          publish_dir: allure-history
+          publish_branch: gh-pages
+          destination_dir: ./allure
+      - name: Post the link to allure report
+        if: always()
+        uses: Sibz/github-status-action@v1
+        with:
+          authToken: ${{secrets.GITHUB_TOKEN}}
+          context: 'Test report'
+          state: 'success'
+          sha: ${{ github.event.pull_request.head.sha  || github.sha }}
+          target_url: https://${{ github.repository_owner }}.github.io/kafka-ui/allure/allure-results/${{ github.run_number }}
\ No newline at end of file


Test patch:
diff --git a/kafka-ui-e2e-checks/src/test/java/com/provectus/kafka/ui/extensions/WaitUtils.java b/kafka-ui-e2e-checks/src/test/java/com/provectus/kafka/ui/extensions/WaitUtils.java
index f4d18c79775..5632ce72c22 100644
--- a/kafka-ui-e2e-checks/src/test/java/com/provectus/kafka/ui/extensions/WaitUtils.java
+++ b/kafka-ui-e2e-checks/src/test/java/com/provectus/kafka/ui/extensions/WaitUtils.java
@@ -25,7 +25,7 @@ public static void waitForSelectedValue(SelenideElement element, String selected
             refresh();
             i++;
             sleep(2000);
-        } while (!selectedValue.equals(element.getSelectedValue()) && i != 20);
+        } while (!selectedValue.equals(element.getSelectedValue()) && i != 30);
         Assertions.assertEquals(selectedValue, element.getSelectedValue()) ;
     }
 }