Improve HTML test report (#2282)
Some checks failed
Build and Test / fetch (push) Failing after 2m11s
Build and Test / Windows (arm64) (push) Has been skipped
Build and Test / Windows (ia32) (push) Has been skipped
Static Analysis / i18n Check (push) Failing after 0s
Build and Test / Windows (x64) (push) Has been skipped
Build and Test / Linux (amd64) (sqlcipher: static) (push) Has been skipped
Build and Test / Linux (amd64) (sqlcipher: system) (push) Has been skipped
Build and Test / Linux (arm64) (sqlcipher: static) (push) Has been skipped
Build and Test / Linux (arm64) (sqlcipher: system) (push) Has been skipped
Build and Test / macOS (push) Has been skipped
Sync labels / sync-labels (push) Failing after 1s
Build and Deploy / prepare (push) Failing after 2m15s
Build and Deploy / Windows arm64 (push) Has been skipped
Build and Deploy / Windows x64 (push) Has been skipped
Build and Deploy / macOS (push) Has been skipped
Build and Deploy / Linux amd64 (sqlcipher static) (push) Has been skipped
Build and Deploy / Linux arm64 (sqlcipher static) (push) Has been skipped
Build and Test / tests-done (push) Has been cancelled
Static Analysis / Typescript Syntax Check (push) Has been cancelled
Static Analysis / ESLint (push) Has been cancelled
Static Analysis / Workflow Lint (push) Has been cancelled
Static Analysis / Analyse Dead Code (push) Has been cancelled
Close stale PRs / close (push) Has been cancelled
Build and Deploy / ${{ needs.prepare.outputs.deploy == 'true' && 'Deploy' || 'Deploy (dry-run)' }} (push) Has been cancelled
Build and Deploy / Deploy builds to ESS (push) Has been cancelled

This commit is contained in:
Michael Telatynski
2025-04-23 14:33:20 +01:00
committed by GitHub
parent a70c5e0215
commit eef66d9795
6 changed files with 84 additions and 5 deletions

View File

@@ -25,6 +25,7 @@ jobs:
arch: [x64, ia32, arm64]
with:
arch: ${{ matrix.arch }}
blob_report: true
linux:
needs: fetch
@@ -37,14 +38,47 @@ jobs:
with:
sqlcipher: ${{ matrix.sqlcipher }}
arch: ${{ matrix.arch }}
blob_report: true
macos:
needs: fetch
name: macOS
uses: ./.github/workflows/build_macos.yaml
with:
blob_report: true
tests-done:
needs: [windows, linux, macos]
runs-on: ubuntu-24.04
if: always()
steps:
- run: echo "Tests successful"
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
cache: "yarn"
node-version: "lts/*"
- name: Install dependencies
run: yarn install --frozen-lockfile
- name: Download blob reports from GitHub Actions Artifacts
uses: actions/download-artifact@v4
with:
pattern: blob-report-*
path: all-blob-reports
merge-multiple: true
- name: Merge into HTML Report
run: yarn playwright merge-reports -c ./playwright.config.ts --reporter=html ./all-blob-reports
- name: Upload HTML report
if: always()
uses: actions/upload-artifact@v4
with:
name: html-report
path: playwright-report
retention-days: 14
- if: contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled')
run: exit 1

View File

@@ -16,6 +16,10 @@ on:
type: string
required: true
description: "How to link sqlcipher, one of 'system' | 'static'"
blob_report:
type: boolean
required: false
description: "Whether to run the blob report"
env:
SQLCIPHER_BUNDLED: ${{ inputs.sqlcipher == 'static' && '1' || '' }}
MAX_GLIBC: 2.31 # bullseye-era glibc, used by glibc-check.sh
@@ -194,3 +198,4 @@ jobs:
prepare_cmd: |
sudo apt-get -qq update
sudo apt install ./dist/*.deb
blob_report: ${{ inputs.blob_report }}

View File

@@ -27,6 +27,10 @@ on:
type: string
required: false
description: "The URL to which the output will be deployed."
blob_report:
type: boolean
required: false
description: "Whether to run the blob report"
permissions: {} # No permissions required
jobs:
build:
@@ -159,3 +163,4 @@ jobs:
hdiutil attach ./dist/*.dmg -mountpoint /Volumes/Element &&
rsync -a /Volumes/Element/Element*.app ~/Applications/ &&
hdiutil detach /Volumes/Element
blob_report: ${{ inputs.blob_report }}

View File

@@ -18,6 +18,10 @@ on:
type: string
required: false
description: "Command to run to prepare the executable or environment for testing"
blob_report:
type: boolean
default: false
description: "Whether to upload a blob report instead of the HTML report"
permissions: {}
jobs:
test:
@@ -65,14 +69,22 @@ jobs:
uses: coactions/setup-xvfb@6b00cf1889f4e1d5a48635647013c0508128ee1a
timeout-minutes: 5
with:
run: "yarn test ${{ runner.os != 'Linux' && '--ignore-snapshots' || '' }}"
run: yarn test --project=${{ inputs.artifact }} ${{ runner.os != 'Linux' && '--ignore-snapshots' || '' }} ${{ inputs.blob_report == false && '--reporter=html' || '' }}
env:
ELEMENT_DESKTOP_EXECUTABLE: ${{ steps.executable.outputs.path }}
- name: Upload blob report
if: always() && inputs.blob_report
uses: actions/upload-artifact@v4
with:
name: blob-report-${{ inputs.artifact }}
path: blob-report
retention-days: 1
- name: Upload HTML report
if: always()
if: always() && inputs.blob_report == false
uses: actions/upload-artifact@v4
with:
name: ${{ inputs.artifact }}-test
path: playwright/html-report
path: playwright-report
retention-days: 14

View File

@@ -30,6 +30,10 @@ on:
type: string
required: false
description: "Whether to sign & notarise the build, requires 'packages.element.io' environment"
blob_report:
type: boolean
required: false
description: "Whether to run the blob report"
permissions: {} # No permissions required
jobs:
build:
@@ -224,3 +228,4 @@ jobs:
artifact: win-${{ inputs.arch }}
runs-on: ${{ inputs.arch == 'arm64' && 'windows-11-arm' || 'windows-2022' }}
executable: ./dist/win*-unpacked/Element*.exe
blob_report: ${{ inputs.blob_report }}