Skip to content

Commit a5d1d72

Browse files
ctw-joao-luisdependabot[bot]gabriela-almeida-ctwaneuwald-ctwluluiz
authored
Release/minor (#840)
## User-Facing Changes <!-- will be used as a changelog entry --> ## Description <!-- link relevant GitHub issues --> <!-- add `docs` label if this PR requires documentation updates --> <!-- add relevant metric tracking for experimental / new features --> ## Checklist - [ ] The web version was tested and it is running ok - [ ] The desktop version was tested and it is running ok - [ ] This change is covered by unit tests - [ ] Files constants.ts, types.ts and *.style.ts have been checked and relevant code snippets have been relocated --------- Signed-off-by: Bezerra Luiz, (Luiz.Bezerra@ctw.bmwgroup.com) <luiz.bezerra+QCOM@ctw.bmwgroup.com> Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: ctw-joao-luis <Joao.Luis@ctw.bmwgroup.com> Signed-off-by: Thomas Sedlmayer <tsedlmayer@pmsfit.de> Signed-off-by: Taeseung Sohn <paulsohnjp@gmail.com> Signed-off-by: Gabriela Almeida <gabriela.almeida@criticaltechworks.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Gabriela Almeida <gabriela.almeida@criticaltechworks.com> Co-authored-by: Alexandre Neuwald CTW <Alexandre.Neuwald@ctw.bmwgroup.com> Co-authored-by: Luiz Bezerra <luiz.bezerra@ctw.bmwgroup.com> Co-authored-by: Bezerra Luiz, (Luiz.Bezerra@ctw.bmwgroup.com) <luiz.bezerra+QCOM@ctw.bmwgroup.com> Co-authored-by: Alexandre Neuwald <alexandre.neuwald@criticaltechworks.com> Co-authored-by: Bruno Abreu <bmachadorj@gmail.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Rodrigo CTW <rodrigo.PE.rodrigues@ctw.bmwgroup.com> Co-authored-by: Bezerra Luiz, (Luiz.Bezerra@ctw.bmwgroup.com) <198787532+luiz-bezerra-ctw-bmwgroup-com_QCOM@users.noreply.github.com> Co-authored-by: Thomas Sedlmayer <tsedlmayer@pmsfit.de> Co-authored-by: Taeseung Sohn <paulsohnjp@gmail.com> Co-authored-by: Planck-Ho <wenloong.he@gmail.com>
1 parent 2612328 commit a5d1d72

File tree

234 files changed

+11827
-3667
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

234 files changed

+11827
-3667
lines changed

.eslintrc.ci.yaml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,12 @@ rules:
1414
import/no-cycle:
1515
- error
1616
- ignoreExternal: true
17+
18+
overrides:
19+
- files:
20+
- "e2e/ci-helpers/**/*.ts"
21+
rules:
22+
no-restricted-syntax: off
23+
import/order: off
24+
"@typescript-eslint/no-unnecessary-condition": off
25+
"@typescript-eslint/strict-boolean-expressions": off

.eslintrc.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ settings:
3030
rules:
3131
"@lichtblick/license-header": ["error", { licenseType: "MPL-2.0" }]
3232
"@lichtblick/prefer-hash-private": off
33+
'@typescript-eslint/no-unnecessary-type-conversion': off
3334

3435
tss-unused-classes/unused-classes: error
3536

.github/workflows/ci.yml

Lines changed: 141 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -49,15 +49,15 @@ jobs:
4949
name: ${{ matrix.config.name }} (${{ matrix.os }})
5050

5151
steps:
52-
- uses: actions/checkout@v5
52+
- uses: actions/checkout@v6
5353

5454
- uses: actions/setup-node@v6
5555
with:
5656
node-version: 20
5757
- run: corepack enable yarn
5858

5959
- name: Restore cache
60-
uses: actions/cache@v4
60+
uses: actions/cache@v5
6161
with:
6262
path: |
6363
.yarn/cache
@@ -69,10 +69,18 @@ jobs:
6969

7070
- run: ${{ matrix.config.command }}
7171

72-
e2e:
72+
e2e-desktop:
7373
runs-on: ubuntu-latest
7474

75-
name: e2e (ubuntu-latest)
75+
# Run tests in parallel across multiple shards
76+
# This distributes tests across multiple GitHub Action jobs
77+
# Each shard runs independently, reducing total CI time
78+
strategy:
79+
fail-fast: false
80+
matrix:
81+
shard: [1, 2, 3, 4]
82+
83+
name: e2e-desktop (ubuntu-latest) [${{ matrix.shard }}/4]
7684

7785
# Set a fixed timezone to ensure consistent test results.
7886
# Lichtblick uses the system's local timezone, which can cause test assertions
@@ -81,15 +89,15 @@ jobs:
8189
TZ: Europe/Lisbon
8290

8391
steps:
84-
- uses: actions/checkout@v5
92+
- uses: actions/checkout@v6
8593

8694
- uses: actions/setup-node@v6
8795
with:
8896
node-version: 20
8997
- run: corepack enable yarn
9098

9199
- name: Restore cache
92-
uses: actions/cache@v4
100+
uses: actions/cache@v5
93101
with:
94102
path: |
95103
.yarn/cache
@@ -106,10 +114,133 @@ jobs:
106114

107115
# It must be dev build, otherwise playwright wont't have all data-testid avaiable for icons
108116
# https://mui.com/material-ui/migration/upgrade-to-v7/#svgicons-data-testid-removed
109-
- name: test:e2e:desktop:ci (ubuntu-latest)
117+
- name: Build desktop app
118+
run: yarn desktop:build:dev
119+
120+
- name: Run E2E Desktop tests - Shard ${{ matrix.shard }}/4
110121
uses: coactions/setup-xvfb@v1
111122
with:
112123
working-directory: ./
113-
run: |
114-
yarn desktop:build:dev
115-
yarn test:e2e:desktop:ci
124+
run: yarn test:e2e:desktop:ci --shard=${{ matrix.shard }}/4
125+
126+
- name: Upload Desktop E2E Test Reports (Shard ${{ matrix.shard }})
127+
if: always()
128+
uses: actions/upload-artifact@v6
129+
with:
130+
name: blob-report-desktop-${{ matrix.shard }}
131+
path: blob-report
132+
retention-days: 1
133+
134+
e2e-web:
135+
runs-on: ubuntu-latest
136+
137+
name: e2e-web (ubuntu-latest)
138+
139+
env:
140+
TZ: Europe/Lisbon
141+
142+
steps:
143+
- uses: actions/checkout@v6
144+
145+
- uses: actions/setup-node@v6
146+
with:
147+
node-version: 20
148+
- run: corepack enable yarn
149+
150+
- name: Restore cache
151+
uses: actions/cache@v5
152+
with:
153+
path: |
154+
.yarn/cache
155+
**/node_modules
156+
key: v5-${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
157+
restore-keys: v5-${{ runner.os }}-yarn-
158+
159+
- run: yarn install --immutable
160+
161+
- name: Install Playwright Browsers
162+
run: npx playwright install --with-deps chromium
163+
164+
- name: Run E2E Web tests
165+
run: yarn test:e2e:web:ci
166+
167+
- name: Upload Web E2E Test Reports
168+
if: always()
169+
uses: actions/upload-artifact@v6
170+
with:
171+
name: e2e-web-reports
172+
path: e2e/reports/web/
173+
retention-days: 7
174+
if-no-files-found: warn
175+
176+
# Merge reports from all shards and generate summary
177+
e2e-report:
178+
if: always()
179+
needs: [e2e-desktop, e2e-web]
180+
runs-on: ubuntu-latest
181+
182+
name: e2e-report (merge all reports)
183+
184+
steps:
185+
- uses: actions/checkout@v6
186+
187+
- uses: actions/setup-node@v6
188+
with:
189+
node-version: 20
190+
- run: corepack enable yarn
191+
192+
- name: Restore cache
193+
uses: actions/cache@v5
194+
with:
195+
path: |
196+
.yarn/cache
197+
**/node_modules
198+
key: v5-${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
199+
restore-keys: v5-${{ runner.os }}-yarn-
200+
201+
- run: yarn install --immutable
202+
203+
- name: Download all desktop blob reports
204+
uses: actions/download-artifact@v7
205+
with:
206+
pattern: blob-report-desktop-*
207+
path: all-blob-reports-desktop
208+
merge-multiple: true
209+
210+
- name: Download web reports
211+
uses: actions/download-artifact@v7
212+
with:
213+
name: e2e-web-reports
214+
path: e2e/reports/web
215+
continue-on-error: true
216+
217+
- name: Merge Desktop Playwright reports
218+
run: |
219+
mkdir -p e2e/reports/desktop
220+
221+
echo "Downloaded desktop blob reports:"
222+
ls -la all-blob-reports-desktop/ || echo "No desktop blob reports found"
223+
224+
# Merge blob reports into JSON format
225+
npx playwright merge-reports --reporter json ./all-blob-reports-desktop > e2e/reports/desktop/results.json
226+
227+
# Also generate HTML report
228+
npx playwright merge-reports --reporter html ./all-blob-reports-desktop
229+
230+
echo "Merged desktop report size:"
231+
ls -lh e2e/reports/desktop/results.json
232+
233+
- name: Generate E2E Test Summary
234+
run: |
235+
echo "Generating E2E test summary from merged reports..."
236+
yarn ts-node e2e/ci-helpers/generate-test-summary.ts >> $GITHUB_STEP_SUMMARY
237+
238+
- name: Upload Merged E2E Test Reports
239+
if: always()
240+
uses: actions/upload-artifact@v6
241+
with:
242+
name: e2e-test-reports-merged
243+
path: |
244+
e2e/reports/
245+
playwright-report/
246+
retention-days: 7

.github/workflows/cloudflare-pages.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717
ENABLE_EXPERIMENTAL_COREPACK: 1
1818

1919
steps:
20-
- uses: actions/checkout@v5
20+
- uses: actions/checkout@v6
2121
with:
2222
submodules: true
2323

.github/workflows/dependabot-fix.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ jobs:
2525
YARN_ENABLE_SCRIPTS: false
2626

2727
steps:
28-
- uses: actions/checkout@v5
28+
- uses: actions/checkout@v6
2929
with:
3030
# Using a Personal Access Token here is required to trigger workflows on our new commit.
3131
# The default GitHub token doesn't trigger any workflows.

.github/workflows/enforce-branch-naming.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ jobs:
2020
exit 1
2121
fi
2222
elif [[ "${GITHUB_BASE_REF}" == "develop" ]]; then
23-
if [[ ! "${GITHUB_HEAD_REF}" =~ ^(feature/|bugfix/|dependabot/) ]]; then
23+
if [[ ! "${GITHUB_HEAD_REF}" =~ ^(feature/|bugfix/|dependabot/|sync/) ]]; then
2424
echo "Source branch must start with 'feature/' or 'bugfix/' (or 'dependabot/') when targeting 'develop'."
2525
exit 1
2626
fi

.github/workflows/gh-pages.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ jobs:
2323
build:
2424
runs-on: ubuntu-latest
2525
steps:
26-
- uses: actions/checkout@v5
26+
- uses: actions/checkout@v6
2727
with:
2828
ref: main
2929

.github/workflows/post-release.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ jobs:
1212

1313
steps:
1414
- name: Checkout ${{ github.event.release.tag_name }}
15-
uses: actions/checkout@v5
15+
uses: actions/checkout@v6
1616
with:
1717
ref: ${{ github.event.release.tag_name }}
1818

@@ -39,7 +39,7 @@ jobs:
3939

4040
steps:
4141
- name: Checkout ${{ github.event.release.tag_name }}
42-
uses: actions/checkout@v5
42+
uses: actions/checkout@v6
4343
with:
4444
ref: ${{ github.event.release.tag_name }}
4545

.github/workflows/pre-build.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313

1414
steps:
1515
- name: Checkout Repository
16-
uses: actions/checkout@v5
16+
uses: actions/checkout@v6
1717
with:
1818
token: ${{ secrets.LICHTBLICK_GITHUB_TOKEN }}
1919

@@ -45,21 +45,21 @@ jobs:
4545
run: yarn run package:darwin
4646

4747
- name: Upload Windows artifact
48-
uses: actions/upload-artifact@v5
48+
uses: actions/upload-artifact@v6
4949
with:
5050
name: lichtblick-${{ env.version }}-windows
5151
path: dist/lichtblick-${{ env.version }}-win.exe
5252
retention-days: 30
5353

5454
- name: Upload Linux artifact
55-
uses: actions/upload-artifact@v5
55+
uses: actions/upload-artifact@v6
5656
with:
5757
name: lichtblick-${{ env.version }}-debian-amd64
5858
path: dist/lichtblick-${{ env.version }}-linux-amd64.deb
5959
retention-days: 30
6060

6161
- name: Upload MacOS artifact
62-
uses: actions/upload-artifact@v5
62+
uses: actions/upload-artifact@v6
6363
with:
6464
name: lichtblick-${{ env.version }}-macos
6565
path: dist/lichtblick-${{ env.version }}-mac-universal.dmg

.github/workflows/prerelease.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ jobs:
4040

4141
steps:
4242
- name: Checkout code
43-
uses: actions/checkout@v5
43+
uses: actions/checkout@v6
4444
with:
4545
token: ${{ secrets.LICHTBLICK_GITHUB_TOKEN }}
4646
ref: ${{ github.event.inputs.branch }}

0 commit comments

Comments
 (0)