Skip to content

Commit 56927b6

Browse files
authored
chore: Merge pull request #19641 from wireapp/rc/2025-10-8
chore: RC 2025-10-8
2 parents a4c6641 + fab476a commit 56927b6

File tree

425 files changed

+8210
-7469
lines changed

Some content is hidden

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

425 files changed

+8210
-7469
lines changed
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
name: Playwright Cells Critical Flow Tests manual
2+
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
environment:
7+
description: 'Select the environment'
8+
required: true
9+
type: choice
10+
options:
11+
- imai
12+
- fulu
13+
- staging
14+
default: staging
15+
16+
jobs:
17+
cells-crit-flow-tests-manual:
18+
uses: ./.github/workflows/run-cells-crit-flow-e2e-tests.yml
19+
with:
20+
environment: ${{ github.event.inputs.environment }}
21+
secrets:
22+
OP_SERVICE_ACCOUNT_TOKEN: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
name: Playwright Cells Critical Flow Tests scheduled
2+
3+
on:
4+
schedule:
5+
# Berlin 9 AM = 7 AM UTC in summer
6+
- cron: '0 7 * * *'
7+
8+
jobs:
9+
cells-crit-flow-tests-scheduled:
10+
strategy:
11+
fail-fast: false
12+
matrix:
13+
environment: [imai, fulu, staging]
14+
uses: ./.github/workflows/run-cells-crit-flow-e2e-tests.yml
15+
with:
16+
environment: ${{ matrix.environment }}
17+
secrets:
18+
OP_SERVICE_ACCOUNT_TOKEN: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }}

.github/workflows/playwright-crit-flow-tests.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ jobs:
3131
uses: 1password/install-cli-action@v1
3232

3333
- name: Generate env file
34-
run: op inject -i test/e2e_tests/.env.tpl -o test/e2e_tests/.env
34+
run: op inject -i test/e2e_tests/.env.staging.tpl -o test/e2e_tests/.env
3535
env:
3636
OP_SERVICE_ACCOUNT_TOKEN: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }}
3737

.github/workflows/playwright-regression-flow-tests.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ jobs:
3232
uses: 1password/install-cli-action@v1
3333

3434
- name: Generate env file
35-
run: op inject -i test/e2e_tests/.env.tpl -o test/e2e_tests/.env
35+
run: op inject -i test/e2e_tests/.env.staging.tpl -o test/e2e_tests/.env
3636
env:
3737
OP_SERVICE_ACCOUNT_TOKEN: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }}
3838

.github/workflows/playwright-smoke-tests.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ jobs:
2929
uses: 1password/install-cli-action@v1
3030

3131
- name: Generate env file
32-
run: op inject -i test/e2e_tests/.env.tpl -o test/e2e_tests/.env
32+
run: op inject -i test/e2e_tests/.env.staging.tpl -o test/e2e_tests/.env
3333
env:
3434
OP_SERVICE_ACCOUNT_TOKEN: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }}
3535

.github/workflows/precommit-crit-flows.yml

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
1-
name: precommit
1+
name: precommit-crit-flows
22

33
on:
44
pull_request:
55
branches: [dev]
6-
branches-ignore:
7-
- 'dependabot/**' # skip all Dependabot PRs
86

97
# One at a time lane for the shared precommit environment
108
concurrency:
@@ -13,19 +11,21 @@ concurrency:
1311

1412
jobs:
1513
build:
14+
# Skip entire job for Dependabot PRs
15+
if: ${{ github.actor != 'dependabot[bot]' && github.actor != 'dependabot' }}
1616
runs-on: buildjet-8vcpu-ubuntu-2204
1717
timeout-minutes: 20
1818

1919
outputs:
2020
unit_tests_report: ${{ env.UNIT_TEST_REPORT_FILE }}
2121
build_artifact: ${{ env.BUILD_ARTIFACT }}
2222
total_additions: ${{ steps.check_additions.outputs.total_additions }}
23+
commit_url: ${{ steps.meta.outputs.commit_url }}
24+
committer: ${{ steps.meta.outputs.committer }}
2325

2426
env:
2527
BUILD_DIR: server/dist/s3/
2628
BUILD_ARTIFACT: ebs.zip
27-
COMMIT_URL: ${{ github.event.head_commit.url }}
28-
COMMITTER: ${{ github.event.head_commit.committer.name }}
2929
CHANGELOG_FILE: ./changelog.md
3030
UNIT_TEST_REPORT_FILE: ./unit-tests.log
3131

@@ -44,6 +44,17 @@ jobs:
4444
- run: yarn configure
4545
- run: yarn build:prod
4646

47+
- name: Derive PR commit metadata
48+
id: meta
49+
run: |
50+
SHA="${{ github.event.pull_request.head.sha }}"
51+
COMMIT_URL="https://github.com/${{ github.repository }}/commit/$SHA"
52+
AUTHOR="$(git show -s --format='%an' "$SHA" || true)"
53+
echo "COMMIT_URL=$COMMIT_URL" >> "$GITHUB_ENV"
54+
echo "COMMITTER=$AUTHOR" >> "$GITHUB_ENV"
55+
echo "commit_url=$COMMIT_URL" >> "$GITHUB_OUTPUT"
56+
echo "committer=$AUTHOR" >> "$GITHUB_OUTPUT"
57+
4758
- uses: actions/upload-artifact@v4
4859
with:
4960
name: build-artifact
@@ -63,6 +74,7 @@ jobs:
6374

6475
deploy_to_aws:
6576
name: Deploy to precommit
77+
if: ${{ github.actor != 'dependabot[bot]' && github.actor != 'dependabot' }}
6678
runs-on: ubuntu-latest
6779
needs: [build]
6880
timeout-minutes: 25
@@ -86,7 +98,7 @@ jobs:
8698
environment_name: wire-webapp-precommit
8799
region: eu-central-1
88100
use_existing_version_if_available: true
89-
version_description: ${{ github.sha }}
101+
version_description: ${{ needs.build.outputs.committer }} — ${{ needs.build.outputs.commit_url }}
90102
version_label: ${{ github.run_id }}
91103
wait_for_deployment: true # ✅ wait until EB is green
92104

@@ -114,10 +126,10 @@ jobs:
114126
115127
e2e_crit_flow:
116128
name: Playwright Critical Flow (precommit)
129+
if: ${{ github.repository == 'wireapp/wire-webapp' && github.actor != 'dependabot[bot]' && github.actor != 'dependabot' }}
117130
runs-on: [self-hosted, Linux, X64, office]
118131
needs: [deploy_to_aws]
119132
timeout-minutes: 35
120-
if: github.repository == 'wireapp/wire-webapp'
121133

122134
steps:
123135
- uses: actions/checkout@v4
@@ -134,7 +146,7 @@ jobs:
134146
- uses: 1password/install-cli-action@143a85f84a90555d121cde2ff5872e393a47ab9f
135147

136148
- name: Generate env file
137-
run: op inject -i test/e2e_tests/.env.tpl -o test/e2e_tests/.env
149+
run: op inject -i test/e2e_tests/.env.staging.tpl -o test/e2e_tests/.env
138150
env:
139151
OP_SERVICE_ACCOUNT_TOKEN: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }}
140152

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
name: Run Cells Critical Flow E2E Tests
2+
3+
on:
4+
workflow_call:
5+
inputs:
6+
environment:
7+
required: true
8+
type: string
9+
secrets:
10+
OP_SERVICE_ACCOUNT_TOKEN:
11+
required: true
12+
13+
jobs:
14+
cells-crit-flow-e2e-tests:
15+
name: Run Playwright Cells Critical Flow Tests
16+
if: github.repository == 'wireapp/wire-webapp'
17+
runs-on: [self-hosted, Linux, X64, office]
18+
env:
19+
ENV: ${{ inputs.environment }}
20+
21+
steps:
22+
- name: Checkout repository
23+
uses: actions/checkout@v4
24+
25+
- name: Setup Node.js
26+
uses: actions/setup-node@v4
27+
with:
28+
node-version: 18.16.x
29+
cache: 'yarn'
30+
31+
- name: Install JS dependencies
32+
run: yarn --immutable
33+
34+
- name: Install Playwright browsers
35+
run: yarn playwright install --with-deps && yarn playwright install chrome
36+
37+
- name: Install 1Password
38+
uses: 1password/install-cli-action@143a85f84a90555d121cde2ff5872e393a47ab9f
39+
40+
- name: Generate env file
41+
run: op inject -i test/e2e_tests/.env.$ENV.tpl -o test/e2e_tests/.env
42+
env:
43+
ENV: ${{ inputs.environment }}
44+
OP_SERVICE_ACCOUNT_TOKEN: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }}
45+
- name: Run critical flow tests
46+
run: yarn e2e-test --grep "@crit-flow-cells"
47+
48+
- name: Upload test report
49+
if: always()
50+
uses: actions/upload-artifact@v4
51+
with:
52+
name: playwright-report-${{ env.ENV }}
53+
path: playwright-report/

README.md

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,9 @@ Prerequisites:
4444

4545
If you would like your browser to trust the certificate from "local.wire.com"/"local.zinfra.io"/"local.imai.wire.link":
4646

47-
1. Download [mkcert](https://github.com/FiloSottile/mkcert/releases/latest)
48-
1. Set the `CAROOT` environment variable to `<WebApp Dir>/server/certificate`
49-
1. Run `mkcert -install`
47+
1. Download [mkcert](https://github.com/FiloSottile/mkcert/releases/latest) Installation on Mac `brew install mkcert` [refer to latest readme.md](https://github.com/FiloSottile/mkcert)
48+
2. Set the `CAROOT` environment variable to `<WebApp Dir>/server/certificate`
49+
3. Run `mkcert -install`
5050

5151
#### Environment Configuration
5252

@@ -64,8 +64,8 @@ BACKEND_WS="https://prod-nginz-ssl.wire.com"
6464

6565
```
6666
APP_BASE="https://local.zinfra.io:8081"
67-
BACKEND_REST="https://nginz-https.zinfra.io"
68-
BACKEND_WS="https://nginz-ssl.zinfra.io"
67+
BACKEND_REST="https://staging-nginz-https.zinfra.io"
68+
BACKEND_WS="wss://staging-nginz-ssl.zinfra.io"
6969
```
7070

7171
**Imai:**
@@ -93,6 +93,8 @@ After updating the environment variables, the app will be available at the corre
9393

9494
## Testing
9595

96+
[![codecov](https://codecov.io/gh/wireapp/wire-webapp/branch/dev/graph/badge.svg?token=9ELBEPM793)](https://codecov.io/gh/wireapp/wire-webapp)
97+
9698
To launch the full test suite (types check + linting + server tests + app tests), simply run:
9799

98100
`yarn test`
@@ -103,7 +105,7 @@ Alternatively, you can test specific parts of the app:
103105

104106
## CI Status
105107

106-
[![CI](https://github.com/wireapp/wire-webapp/actions/workflows/test_build_deploy.yml/badge.svg?branch=dev)](https://github.com/wireapp/wire-webapp/actions/workflows/test_build_deploy.yml) [![Lint](https://github.com/wireapp/wire-webapp/actions/workflows/lint.yml/badge.svg?branch=dev)](https://github.com/wireapp/wire-webapp/actions/workflows/lint.yml) [![styled with prettier](https://img.shields.io/badge/styled_with-prettier-ff69b4.svg)](https://github.com/prettier/prettier)
108+
[![CI](https://github.com/wireapp/wire-webapp/actions/workflows/ci.yml/badge.svg?branch=dev)](https://github.com/wireapp/wire-webapp/actions/workflows/ci.yml) [![styled with prettier](https://img.shields.io/badge/styled_with-prettier-ff69b4.svg)](https://github.com/prettier/prettier)
107109

108110
## Translations
109111

package.json

Lines changed: 22 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"@datadog/browser-logs": "5.35.1",
44
"@datadog/browser-rum": "5.35.1",
55
"@emotion/react": "11.11.4",
6-
"@formkit/auto-animate": "0.8.4",
6+
"@formkit/auto-animate": "0.9.0",
77
"@lexical/code": "0.27.2",
88
"@lexical/history": "0.27.2",
99
"@lexical/list": "0.27.2",
@@ -15,14 +15,14 @@
1515
"@tanstack/react-virtual": "3.13.4",
1616
"@wireapp/avs": "10.0.46",
1717
"@wireapp/avs-debugger": "0.0.7",
18-
"@wireapp/commons": "5.4.4",
19-
"@wireapp/core": "46.34.11",
18+
"@wireapp/commons": "5.4.5",
19+
"@wireapp/core": "46.38.1",
2020
"@wireapp/kalium-backup": "0.0.4",
21-
"@wireapp/promise-queue": "2.4.4",
22-
"@wireapp/react-ui-kit": "9.63.0",
23-
"@wireapp/store-engine-dexie": "2.1.15",
21+
"@wireapp/promise-queue": "2.4.5",
22+
"@wireapp/react-ui-kit": "9.66.0",
23+
"@wireapp/store-engine-dexie": "2.1.16",
2424
"@wireapp/telemetry": "0.3.1",
25-
"@wireapp/webapp-events": "0.28.0",
25+
"@wireapp/webapp-events": "0.28.1",
2626
"amplify": "https://github.com/wireapp/amplify#head=master",
2727
"beautiful-react-hooks": "5.0.3",
2828
"classnames": "2.5.1",
@@ -31,8 +31,9 @@
3131
"date-fns": "4.1.0",
3232
"dexie-batch": "0.4.3",
3333
"dexie-encrypted": "2.0.0",
34-
"emoji-picker-react": "4.13.3",
34+
"emoji-picker-react": "4.14.0",
3535
"http-status-codes": "2.3.0",
36+
"immer": "10.1.3",
3637
"jimp": "0.22.12",
3738
"js-cookie": "3.0.5",
3839
"jszip": "3.10.1",
@@ -53,7 +54,7 @@
5354
"react-dom": "18.3.1",
5455
"react-dropzone": "14.3.8",
5556
"react-error-boundary": "5.0.0",
56-
"react-intl": "7.1.11",
57+
"react-intl": "7.1.12",
5758
"react-pdf": "9.2.1",
5859
"react-redux": "9.2.0",
5960
"react-router": "6.28.0",
@@ -81,11 +82,11 @@
8182
"@babel/preset-typescript": "7.27.1",
8283
"@emotion/eslint-plugin": "11.11.0",
8384
"@faker-js/faker": "9.9.0",
84-
"@formatjs/cli": "6.7.2",
85-
"@playwright/test": "1.55.0",
86-
"@roamhq/wrtc": "0.9.0",
85+
"@formatjs/cli": "6.7.3",
86+
"@playwright/test": "1.55.1",
87+
"@roamhq/wrtc": "0.9.1",
8788
"@testing-library/dom": "^10.4.1",
88-
"@testing-library/jest-dom": "^6.8.0",
89+
"@testing-library/jest-dom": "^6.9.1",
8990
"@testing-library/react": "16.3.0",
9091
"@types/dexie-batch": "0.4.7",
9192
"@types/eslint": "8.56.5",
@@ -113,11 +114,11 @@
113114
"@types/uuid": "^10.0.0",
114115
"@types/webpack-bundle-analyzer": "^4",
115116
"@types/webpack-env": "1.18.8",
116-
"@types/wicg-file-system-access": "^2023.10.5",
117-
"@wireapp/copy-config": "2.3.2",
117+
"@types/wicg-file-system-access": "^2023.10.7",
118+
"@wireapp/copy-config": "2.3.4",
118119
"@wireapp/eslint-config": "3.0.7",
119-
"@wireapp/prettier-config": "0.6.4",
120-
"@wireapp/store-engine": "5.1.11",
120+
"@wireapp/prettier-config": "0.6.5",
121+
"@wireapp/store-engine": "5.1.12",
121122
"archiver": "7.0.1",
122123
"autoprefixer": "10.4.21",
123124
"babel-loader": "10.0.0",
@@ -151,7 +152,7 @@
151152
"postcss-import": "16.1.1",
152153
"postcss-less": "6.0.0",
153154
"postcss-loader": "8.2.0",
154-
"postcss-preset-env": "10.3.1",
155+
"postcss-preset-env": "10.4.0",
155156
"postcss-scss": "4.0.9",
156157
"prettier": "3.3.2",
157158
"qrcode-reader": "1.0.4",
@@ -161,17 +162,17 @@
161162
"simple-git": "3.28.0",
162163
"sinon": "18.0.0",
163164
"style-loader": "4.0.0",
164-
"stylelint": "16.23.1",
165+
"stylelint": "16.25.0",
165166
"stylelint-config-idiomatic-order": "10.0.0",
166167
"svg-inline-loader": "0.8.2",
167168
"text-encoding": "0.7.0",
168169
"ts-node": "10.9.2",
169170
"tsc-watch": "6.2.1",
170171
"typescript": "5.5.2",
171-
"webpack": "5.101.3",
172+
"webpack": "5.102.0",
172173
"webpack-bundle-analyzer": "^4.10.2",
173174
"webpack-cli": "6.0.1",
174-
"webpack-dev-middleware": "7.4.3",
175+
"webpack-dev-middleware": "7.4.5",
175176
"webpack-hot-middleware": "2.26.1",
176177
"workbox-webpack-plugin": "7.3.0"
177178
},

playwright.config.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ module.exports = defineConfig({
5050
screenshot: 'only-on-failure',
5151
permissions: ['camera', 'microphone'],
5252
actionTimeout: 20_000, // 20 seconds
53+
testIdAttribute: 'data-uie-name',
5354
},
5455
expect: {
5556
timeout: 10_000, // 10 seconds

0 commit comments

Comments
 (0)