Repository navigation
Release 1.26.0 (#1155) #33
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: E2E Regression | |
| # Runs the full E2E test suite (all @smoke + @regression tests). | |
| # Triggered nightly and on every push to the long-lived branches. | |
| # PR CI only runs @smoke tests (see ci.yml). | |
| on: | |
| schedule: | |
| - cron: "0 2 * * *" # Daily at 02:00 UTC | |
| push: | |
| branches: [develop, main] | |
| env: | |
| FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true | |
| jobs: | |
| e2e-desktop-regression: | |
| runs-on: ubuntu-latest | |
| # Run all tests in parallel across 4 shards | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| shard: [1, 2, 3, 4] | |
| name: e2e-desktop-regression (ubuntu-latest) [${{ matrix.shard }}/4] | |
| # Set a fixed timezone to ensure consistent test results. | |
| # Lichtblick uses the system's local timezone, which can cause test assertions | |
| # to fail due to time discrepancies across different environments. | |
| env: | |
| TZ: Europe/Lisbon | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: actions/setup-node@v6 | |
| with: | |
| node-version: 24 | |
| - run: corepack enable yarn | |
| - name: Restore cache | |
| uses: actions/cache@v5 | |
| with: | |
| path: | | |
| .yarn/cache | |
| **/node_modules | |
| key: v5-${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} | |
| restore-keys: v5-${{ runner.os }}-yarn- | |
| - run: yarn install --immutable | |
| - name: Apply AppArmor Fix (Ubuntu) | |
| # Required for Playwright on Ubuntu to work properly | |
| # See: https://github.com/microsoft/playwright/issues/34251 | |
| run: sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0 | |
| # It must be dev build, otherwise playwright won't have all data-testid available for icons | |
| # https://mui.com/material-ui/migration/upgrade-to-v7/#svgicons-data-testid-removed | |
| - name: Build desktop app | |
| run: yarn desktop:build:dev | |
| - name: Run E2E Desktop regression tests - Shard ${{ matrix.shard }}/4 | |
| uses: coactions/setup-xvfb@v1 | |
| with: | |
| working-directory: ./ | |
| run: yarn test:e2e:desktop:ci --shard=${{ matrix.shard }}/4 | |
| - name: Upload Desktop E2E Test Reports (Shard ${{ matrix.shard }}) | |
| if: always() | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: blob-report-regression-desktop-${{ matrix.shard }} | |
| path: blob-report | |
| retention-days: 1 | |
| e2e-web-regression: | |
| runs-on: ubuntu-latest | |
| name: e2e-web-regression (ubuntu-latest) | |
| env: | |
| TZ: Europe/Lisbon | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: actions/setup-node@v6 | |
| with: | |
| node-version: 24 | |
| - run: corepack enable yarn | |
| - name: Restore cache | |
| uses: actions/cache@v5 | |
| with: | |
| path: | | |
| .yarn/cache | |
| **/node_modules | |
| key: v5-${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} | |
| restore-keys: v5-${{ runner.os }}-yarn- | |
| - run: yarn install --immutable | |
| - name: Install Playwright Browsers | |
| run: npx playwright install --with-deps chromium | |
| - name: Run E2E Web regression tests | |
| run: yarn test:e2e:web:ci | |
| - name: Upload Web E2E Test Reports | |
| if: always() | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: e2e-regression-web-reports | |
| path: e2e/reports/web/ | |
| retention-days: 7 | |
| if-no-files-found: warn | |
| # Merge reports from all shards and generate summary | |
| e2e-regression-report: | |
| if: always() | |
| needs: [e2e-desktop-regression, e2e-web-regression] | |
| runs-on: ubuntu-latest | |
| name: e2e-regression-report (merge all reports) | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: actions/setup-node@v6 | |
| with: | |
| node-version: 24 | |
| - run: corepack enable yarn | |
| - name: Restore cache | |
| uses: actions/cache@v5 | |
| with: | |
| path: | | |
| .yarn/cache | |
| **/node_modules | |
| key: v5-${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} | |
| restore-keys: v5-${{ runner.os }}-yarn- | |
| - run: yarn install --immutable | |
| - name: Download all desktop blob reports | |
| uses: actions/download-artifact@v8 | |
| with: | |
| pattern: blob-report-regression-desktop-* | |
| path: all-blob-reports-desktop | |
| merge-multiple: true | |
| - name: Download web reports | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: e2e-regression-web-reports | |
| path: e2e/reports/web | |
| continue-on-error: true | |
| - name: Merge Desktop Playwright reports | |
| run: | | |
| mkdir -p e2e/reports/desktop | |
| echo "Downloaded desktop blob reports:" | |
| ls -la all-blob-reports-desktop/ || echo "No desktop blob reports found" | |
| # Merge blob reports into JSON format | |
| npx playwright merge-reports --reporter json ./all-blob-reports-desktop > e2e/reports/desktop/results.json | |
| # Also generate HTML report | |
| npx playwright merge-reports --reporter html ./all-blob-reports-desktop | |
| echo "Merged desktop report size:" | |
| ls -lh e2e/reports/desktop/results.json | |
| - name: Generate E2E Test Summary | |
| run: | | |
| echo "Generating E2E regression test summary from merged reports..." | |
| yarn ts-node e2e/ci-helpers/generate-test-summary.ts >> $GITHUB_STEP_SUMMARY | |
| - name: Upload Merged E2E Test Reports | |
| if: always() | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: e2e-regression-reports-merged | |
| path: | | |
| e2e/reports/ | |
| playwright-report/ | |
| retention-days: 7 |