Report intermittent tests #1643
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Report intermittent E2E Tests | |
| on: | |
| schedule: | |
| - cron: "42 04 * * *" | |
| jobs: | |
| backend-build: | |
| name: Build backend 🏗️ | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup environment | |
| uses: ./.github/actions/setup-env | |
| - name: Build backend | |
| run: ./gradlew classes jar bootJar | |
| - name: Upload backend build result | |
| uses: ./.github/actions/upload-backend-build | |
| backend-test: | |
| name: BT 🔎 | |
| needs: [backend-build] | |
| runs-on: ubuntu-24.04 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| command: | |
| - run: "server-app:runContextRecreatingTests" | |
| clean: "server-app:cleanRunContextRecreatingTests" | |
| - run: "server-app:runStandardTests" | |
| clean: "server-app:cleanRunStandardTests" | |
| - run: "server-app:runWebsocketTests" | |
| clean: "server-app:cleanRunWebsocketTests" | |
| - run: "ee-test:test" | |
| clean: "ee-test:cleanTest" | |
| - run: "data:test" | |
| clean: "data:cleanTest" | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup environment | |
| uses: ./.github/actions/setup-env | |
| with: | |
| node: 'false' | |
| - name: Download backend build result | |
| uses: ./.github/actions/download-backend-build | |
| - name: Run backend tests | |
| run: | | |
| ./gradlew ${{ matrix.command.run }}; | |
| ./gradlew ${{ matrix.command.clean }}; | |
| ./gradlew ${{ matrix.command.run }}; | |
| ./gradlew ${{ matrix.command.clean }}; | |
| ./gradlew ${{ matrix.command.run }}; | |
| env: | |
| SKIP_SERVER_BUILD: true | |
| - name: Get report name | |
| id: reportName | |
| if: always() | |
| run: | | |
| reportName=${{ matrix.command.run }} | |
| echo "reportName=${reportName//\:/_}" >> $GITHUB_OUTPUT | |
| - uses: actions/upload-artifact@v4 | |
| if: always() | |
| with: | |
| name: backend_test_reports_${{ steps.reportName.outputs.reportName }} | |
| path: | | |
| ./**/build/reports/**/* | |
| - name: Test Report | |
| uses: dorny/test-reporter@v1 | |
| if: always() | |
| with: | |
| name: Test report for ${{ matrix.command }} | |
| path: "**/build/test-results/**/TEST-*.xml" | |
| fail-on-error: false | |
| reporter: java-junit | |
| e2e: | |
| needs: [frontend-build, backend-build, e2e-install-deps] | |
| runs-on: ubuntu-24.04 | |
| name: E2E testing 🔎 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| total_jobs: [15] | |
| job_index: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup environment | |
| uses: ./.github/actions/setup-env | |
| - name: Download backend build result | |
| uses: ./.github/actions/download-backend-build | |
| - name: Download frontend build result | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: webapp | |
| path: ./webapp/dist | |
| - name: Download dependencies | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: e2e_deps | |
| path: ~/ | |
| - name: Untar node modules | |
| run: | | |
| tar --zstd -xf ~/node_modules.tar.zst ./e2e/node_modules | |
| - name: Create cache directory | |
| run: | | |
| mkdir -p ~/.cache | |
| - name: Untar Cypress cache | |
| run: | | |
| tar --zstd -xf ~/cypress_cache.tar.zst | |
| working-directory: /home/runner/.cache/ | |
| - name: Run e2e test | |
| run: | | |
| ./gradlew runE2e && \ | |
| ./gradlew runE2e && \ | |
| ./gradlew runE2e | |
| env: | |
| TOLGEE_API_KEY: ${{secrets.TOLGEE_API_KEY}} | |
| TOLGEE_API_URL: ${{secrets.TOLGEE_API_URL}} | |
| SKIP_WEBAPP_BUILD: true | |
| SKIP_SERVER_BUILD: true | |
| SKIP_INSTALL_E2E_DEPS: true | |
| E2E_TOTAL_JOBS: ${{matrix.total_jobs}} | |
| E2E_JOB_INDEX: ${{matrix.job_index}} | |
| - uses: actions/upload-artifact@v4 | |
| if: failure() | |
| with: | |
| name: e2e ${{ matrix.job_index }} | |
| path: | | |
| ./e2e/cypress/videos/**/* | |
| ./e2e/cypress/screenshots/**/* | |
| frontend-build: | |
| name: Build frontend 🏗️ | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup environment | |
| uses: ./.github/actions/setup-env | |
| - name: Build webapp | |
| run: ./gradlew buildWebapp | |
| env: | |
| TOLGEE_API_KEY: ${{secrets.TOLGEE_API_KEY}} | |
| TOLGEE_API_URL: ${{secrets.TOLGEE_API_URL}} | |
| - name: Upload built webapp | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: webapp | |
| path: webapp/dist | |
| e2e-install-deps: | |
| name: Install E2E dependencies ⬇️ | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup environment | |
| uses: ./.github/actions/setup-env | |
| with: | |
| java: 'false' | |
| - name: Install dependencies | |
| run: npm ci | |
| working-directory: ./e2e | |
| - name: Tar node modules | |
| run: | | |
| tar --zstd -cf ~/node_modules.tar.zst ./e2e/node_modules | |
| - name: Tar Cypress cache | |
| run: | | |
| tar --zstd -cf ~/cypress_cache.tar.zst ./Cypress | |
| working-directory: /home/runner/.cache/ | |
| - uses: actions/upload-artifact@v4 | |
| if: always() | |
| with: | |
| name: e2e_deps | |
| path: | | |
| ~/node_modules.tar.zst | |
| ~/cypress_cache.tar.zst | |
| cleanup: | |
| if: always() | |
| needs: [e2e, frontend-build, backend-build, e2e-install-deps] | |
| name: Delete artifacts 🧹 | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: geekyeggo/delete-artifact@v1 | |
| with: | |
| name: | | |
| e2e_deps | |
| webapp | |
| backend |