Skip to content

Report intermittent tests #1633

Report intermittent tests

Report intermittent tests #1633

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