Skip to content

Commit db705eb

Browse files
committed
Merge branch 'dev' into feat/cut_rc
2 parents 95b631e + a44e7c3 commit db705eb

File tree

107 files changed

+2242
-923
lines changed

Some content is hidden

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

107 files changed

+2242
-923
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ jobs:
3737
run: yarn test --coverage --coverage-reporters=lcov --detectOpenHandles=false
3838

3939
- name: Monitor coverage
40-
uses: codecov/[email protected].0
40+
uses: codecov/[email protected].1
4141
with:
4242
fail_ci_if_error: false
4343
files: ./coverage/lcov.info

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
name: Playwright Critical Flow Tests
22

3-
on:
4-
pull_request:
5-
# we want to run the CI on every PR targetting those branches
6-
branches: [dev]
3+
#on:
4+
# pull_request:
5+
# # we want to run the CI on every PR targetting those branches
6+
# branches: [dev]
77

88
jobs:
99
smoke-tests:
Lines changed: 181 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,181 @@
1+
name: precommit
2+
3+
on:
4+
pull_request:
5+
branches: [dev]
6+
branches-ignore:
7+
- 'dependabot/**' # skip all Dependabot PRs
8+
9+
# One at a time lane for the shared precommit environment
10+
concurrency:
11+
group: precommit-deploy
12+
cancel-in-progress: false # queue newer runs
13+
14+
jobs:
15+
build:
16+
runs-on: buildjet-8vcpu-ubuntu-2204
17+
timeout-minutes: 20
18+
19+
outputs:
20+
unit_tests_report: ${{ env.UNIT_TEST_REPORT_FILE }}
21+
build_artifact: ${{ env.BUILD_ARTIFACT }}
22+
total_additions: ${{ steps.check_additions.outputs.total_additions }}
23+
24+
env:
25+
BUILD_DIR: server/dist/s3/
26+
BUILD_ARTIFACT: ebs.zip
27+
COMMIT_URL: ${{ github.event.head_commit.url }}
28+
COMMITTER: ${{ github.event.head_commit.committer.name }}
29+
CHANGELOG_FILE: ./changelog.md
30+
UNIT_TEST_REPORT_FILE: ./unit-tests.log
31+
32+
steps:
33+
- uses: actions/checkout@v4
34+
with:
35+
fetch-depth: 0
36+
ref: ${{ github.event.pull_request.head.sha }}
37+
38+
- uses: actions/setup-node@v4
39+
with:
40+
node-version: 18.16.x
41+
cache: yarn
42+
43+
- run: yarn --immutable
44+
- run: yarn configure
45+
- run: yarn build:prod
46+
47+
- uses: actions/upload-artifact@v4
48+
with:
49+
name: build-artifact
50+
path: ${{ env.BUILD_DIR }}${{ env.BUILD_ARTIFACT }}
51+
52+
- name: Check total PR additions
53+
id: check_additions
54+
run: |
55+
total_additions=$(gh api -H "Accept: application/vnd.github.v3+json" \
56+
"repos/${{ github.repository }}/pulls/${{ github.event.pull_request.number }}" \
57+
| jq -r '.additions')
58+
test -n "$total_additions" -a "$total_additions" != null
59+
echo "Found total additions: $total_additions"
60+
echo "total_additions=$total_additions" >> "$GITHUB_OUTPUT"
61+
env:
62+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
63+
64+
deploy_to_aws:
65+
name: Deploy to precommit
66+
runs-on: ubuntu-latest
67+
needs: [build]
68+
timeout-minutes: 25
69+
70+
outputs:
71+
precommit_url: ${{ steps.fetch_url.outputs.url }}
72+
73+
steps:
74+
- uses: actions/download-artifact@v4
75+
with:
76+
name: build-artifact
77+
78+
- name: Deploy to precommit environment
79+
id: deploy
80+
uses: einaregilsson/beanstalk-deploy@27edd8a0ebe8656ac70654372c73f06f7e9a1027 # v22
81+
with:
82+
application_name: Webapp
83+
aws_access_key: ${{ secrets.WEBTEAM_AWS_ACCESS_KEY_ID }}
84+
aws_secret_key: ${{ secrets.WEBTEAM_AWS_SECRET_ACCESS_KEY }}
85+
deployment_package: ${{ needs.build.outputs.build_artifact }}
86+
environment_name: wire-webapp-precommit
87+
region: eu-central-1
88+
use_existing_version_if_available: true
89+
version_description: ${{ github.sha }}
90+
version_label: ${{ github.run_id }}
91+
wait_for_deployment: true # ✅ wait until EB is green
92+
93+
- name: Fetch precommit URL
94+
id: fetch_url
95+
run: |
96+
URL=$(aws elasticbeanstalk describe-environments \
97+
--region eu-central-1 \
98+
--environment-names wire-webapp-precommit \
99+
--query "Environments[0].CNAME" --output text)
100+
echo "url=https://$URL" >> "$GITHUB_OUTPUT"
101+
env:
102+
AWS_ACCESS_KEY_ID: ${{ secrets.WEBTEAM_AWS_ACCESS_KEY_ID }}
103+
AWS_SECRET_ACCESS_KEY: ${{ secrets.WEBTEAM_AWS_SECRET_ACCESS_KEY }}
104+
AWS_DEFAULT_REGION: eu-central-1
105+
106+
- name: Deployment Status
107+
if: ${{ always() }}
108+
run: |
109+
if [[ "${{ steps.deploy.outcome }}" == "success" ]]; then
110+
echo "✅ Deployment completed successfully"
111+
else
112+
echo "❌ Deployment failed"; exit 1
113+
fi
114+
115+
e2e_crit_flow:
116+
name: Playwright Critical Flow (precommit)
117+
runs-on: [self-hosted, Linux, X64, office]
118+
needs: [deploy_to_aws]
119+
timeout-minutes: 35
120+
if: github.repository == 'wireapp/wire-webapp'
121+
122+
steps:
123+
- uses: actions/checkout@v4
124+
with:
125+
ref: ${{ github.event.pull_request.head.sha }}
126+
127+
- uses: actions/setup-node@v4
128+
with:
129+
node-version: 18.16.x
130+
cache: yarn
131+
132+
- run: yarn --immutable
133+
- run: yarn playwright install --with-deps && yarn playwright install chrome
134+
- uses: 1password/install-cli-action@143a85f84a90555d121cde2ff5872e393a47ab9f
135+
136+
- name: Generate env file
137+
run: op inject -i test/e2e_tests/.env.tpl -o test/e2e_tests/.env
138+
env:
139+
OP_SERVICE_ACCOUNT_TOKEN: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }}
140+
141+
# Log which URL will be used for tests (deploy output vs fallback) and probe if env responds
142+
- name: Show target URL + quick probe
143+
run: |
144+
echo "Using precommit URL: https://wire-webapp-precommit.zinfra.io/"
145+
curl -s -o /dev/null -w "HTTP %{http_code}\n" https://wire-webapp-precommit.zinfra.io/
146+
147+
- name: Run critical flow tests
148+
env:
149+
# TODO: remove hardcoded precommit env in the future when ephemeral PR envs will exist
150+
# Overrides URL from .env file
151+
WEBAPP_URL: https://wire-webapp-precommit.zinfra.io/
152+
run: yarn e2e-test --grep "@crit-flow-web"
153+
154+
- name: Upload test report
155+
if: always()
156+
uses: actions/upload-artifact@v4
157+
with:
158+
name: playwright-report
159+
path: playwright-report/
160+
161+
- name: Generate PR comment
162+
if: always()
163+
id: generate_comment
164+
run: |
165+
node test/e2e_tests/scripts/create-playwright-report-summary.js
166+
COMMENT=$(cat playwright-report-summary.txt)
167+
echo "comment<<EOF" >> $GITHUB_OUTPUT
168+
echo "$COMMENT" >> $GITHUB_OUTPUT
169+
echo "EOF" >> $GITHUB_OUTPUT
170+
171+
- name: Comment on PR
172+
if: always()
173+
uses: marocchino/sticky-pull-request-comment@773744901bac0e8cbb5a0dc842800d45e9b2b405
174+
with:
175+
header: playwright-summary
176+
message: |
177+
🔗 [Download Full Report Artifact](https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }})
178+
179+
${{ steps.generate_comment.outputs.comment }}
180+
env:
181+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/precommit.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
name: precommit
22

3-
on:
4-
pull_request:
5-
# we want to run the CI on every PR targetting those branches
6-
branches: [dev]
3+
#on:
4+
# pull_request:
5+
# # we want to run the CI on every PR targetting those branches
6+
# branches: [dev]
77

88
concurrency:
99
group: precommit-deploy

.github/workflows/pull_translations.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ jobs:
2828
run: yarn --immutable
2929

3030
- name: Sync translations
31-
uses: crowdin/github-action@v2.10.0
31+
uses: crowdin/github-action@v2.11.0
3232
env:
3333
GITHUB_TOKEN: ${{secrets.OTTO_THE_BOT_GH_TOKEN}}
3434
GITHUB_ACTOR: otto-the-bot

.github/workflows/sync_translations.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ jobs:
3737
run: yarn translate:merge
3838

3939
- name: Download translations
40-
uses: crowdin/github-action@v2.10.0
40+
uses: crowdin/github-action@v2.11.0
4141
env:
4242
GITHUB_TOKEN: ${{secrets.OTTO_THE_BOT_GH_TOKEN}}
4343
CROWDIN_PROJECT_ID: 342359
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{{- if gt (int .Values.replicaCount) 1 }}
2+
apiVersion: policy/v1
3+
kind: PodDisruptionBudget
4+
metadata:
5+
name: webapp
6+
labels:
7+
app: webapp
8+
chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
9+
release: {{ .Release.Name }}
10+
heritage: {{ .Release.Service }}
11+
spec:
12+
maxUnavailable: {{ sub (int .Values.replicaCount) 1 }}
13+
selector:
14+
matchLabels:
15+
app: webapp
16+
{{- end }}

package.json

Lines changed: 16 additions & 16 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.2",
6+
"@formkit/auto-animate": "0.8.4",
77
"@lexical/code": "0.27.2",
88
"@lexical/history": "0.27.2",
99
"@lexical/list": "0.27.2",
@@ -16,7 +16,7 @@
1616
"@wireapp/avs": "10.0.46",
1717
"@wireapp/avs-debugger": "0.0.7",
1818
"@wireapp/commons": "5.4.4",
19-
"@wireapp/core": "46.34.1",
19+
"@wireapp/core": "46.34.7",
2020
"@wireapp/kalium-backup": "0.0.4",
2121
"@wireapp/react-ui-kit": "9.63.0",
2222
"@wireapp/store-engine-dexie": "2.1.15",
@@ -26,11 +26,11 @@
2626
"beautiful-react-hooks": "5.0.3",
2727
"classnames": "2.5.1",
2828
"copy-webpack-plugin": "13.0.1",
29-
"core-js": "3.45.0",
29+
"core-js": "3.45.1",
3030
"date-fns": "4.1.0",
3131
"dexie-batch": "0.4.3",
3232
"dexie-encrypted": "2.0.0",
33-
"emoji-picker-react": "4.13.2",
33+
"emoji-picker-react": "4.13.3",
3434
"http-status-codes": "2.3.0",
3535
"jimp": "0.22.12",
3636
"js-cookie": "3.0.5",
@@ -44,7 +44,7 @@
4444
"markdown-it": "14.0.0",
4545
"murmurhash": "2.0.1",
4646
"oidc-client-ts": "3.3.0",
47-
"path-to-regexp": "8.2.0",
47+
"path-to-regexp": "8.3.0",
4848
"platform": "1.3.6",
4949
"prism-themes": "^1.9.0",
5050
"prismjs": "^1.29.0",
@@ -65,26 +65,26 @@
6565
"speakingurl": "14.0.1",
6666
"tsyringe": "4.10.0",
6767
"underscore": "1.13.7",
68-
"use-debounce": "^10.0.5",
68+
"use-debounce": "^10.0.6",
6969
"uuid": "11.1.0",
7070
"webgl-utils.js": "1.1.0",
7171
"webrtc-adapter": "9.0.3",
7272
"zod": "^3.24.2",
7373
"zustand": "4.5.5"
7474
},
7575
"devDependencies": {
76-
"@babel/core": "7.28.3",
76+
"@babel/core": "7.28.4",
7777
"@babel/plugin-proposal-decorators": "7.28.0",
7878
"@babel/preset-env": "7.28.3",
7979
"@babel/preset-react": "7.27.1",
8080
"@babel/preset-typescript": "7.27.1",
8181
"@emotion/eslint-plugin": "11.11.0",
8282
"@faker-js/faker": "9.9.0",
8383
"@formatjs/cli": "6.7.2",
84-
"@playwright/test": "1.54.2",
84+
"@playwright/test": "1.55.0",
8585
"@roamhq/wrtc": "0.9.0",
8686
"@testing-library/dom": "^10.4.1",
87-
"@testing-library/jest-dom": "^6.7.0",
87+
"@testing-library/jest-dom": "^6.8.0",
8888
"@testing-library/react": "16.3.0",
8989
"@types/dexie-batch": "0.4.7",
9090
"@types/eslint": "8.56.5",
@@ -123,13 +123,13 @@
123123
"babel-plugin-transform-import-meta": "2.3.3",
124124
"cross-env": "7.0.3",
125125
"css-loader": "7.1.2",
126-
"cssnano": "7.1.0",
126+
"cssnano": "7.1.1",
127127
"dexie": "4.0.7",
128128
"dotenv": "16.4.7",
129129
"dpdm": "3.14.0",
130130
"eslint": "8.57.0",
131131
"eslint-plugin-prettier": "5.1.3",
132-
"fake-indexeddb": "6.1.0",
132+
"fake-indexeddb": "6.2.2",
133133
"generate-changelog": "1.8.0",
134134
"html-webpack-plugin": "5.6.4",
135135
"husky": "9.1.7",
@@ -141,16 +141,16 @@
141141
"jest-jasmine2": "29.7.0",
142142
"jest-transform-stub": "2.0.0",
143143
"jsdom-worker": "0.3.0",
144-
"less": "4.4.0",
144+
"less": "4.4.1",
145145
"less-loader": "12.3.0",
146146
"lint-staged": "15.5.0",
147147
"os-browserify": "0.3.0",
148148
"path-browserify": "1.0.1",
149149
"postcss": "8.5.6",
150150
"postcss-import": "16.1.1",
151151
"postcss-less": "6.0.0",
152-
"postcss-loader": "8.1.1",
153-
"postcss-preset-env": "10.2.4",
152+
"postcss-loader": "8.2.0",
153+
"postcss-preset-env": "10.3.1",
154154
"postcss-scss": "4.0.9",
155155
"prettier": "3.3.2",
156156
"qrcode-reader": "1.0.4",
@@ -167,10 +167,10 @@
167167
"ts-node": "10.9.2",
168168
"tsc-watch": "6.2.1",
169169
"typescript": "5.5.2",
170-
"webpack": "5.101.2",
170+
"webpack": "5.101.3",
171171
"webpack-bundle-analyzer": "^4.10.2",
172172
"webpack-cli": "6.0.1",
173-
"webpack-dev-middleware": "7.4.2",
173+
"webpack-dev-middleware": "7.4.3",
174174
"webpack-hot-middleware": "2.26.1",
175175
"workbox-webpack-plugin": "7.3.0"
176176
},

server/config/client.config.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@ export function generateConfig(params: ConfigGeneratorParams, env: Env) {
5555
: null,
5656
ENABLE_CELLS: env.FEATURE_ENABLE_CELLS == 'true',
5757
CELLS_INIT_WITH_ZAUTH_TOKEN: env.FEATURE_CELLS_INIT_WITH_ZAUTH_TOKEN == 'true',
58-
USE_ASYNC_NOTIFICATIONS: env.FEATURE_USE_ASYNC_NOTIFICATIONS == 'true',
5958
CHECK_CONSENT: env.FEATURE_CHECK_CONSENT != 'false',
6059
CONFERENCE_AUTO_MUTE: env.FEATURE_CONFERENCE_AUTO_MUTE == 'true',
6160
ENABLE_IN_CALL_REACTIONS: env.FEATURE_ENABLE_IN_CALL_REACTIONS == 'true',

server/config/env.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -99,9 +99,6 @@ export type Env = {
9999

100100
FEATURE_FORCE_EXTRA_CLIENT_ENTROPY?: string;
101101

102-
/** Feature toggle for the user consent check. Can be set to true or false */
103-
FEATURE_USE_ASYNC_NOTIFICATIONS: string;
104-
105102
/** Feature toggle for the user consent check. Can be set to true or false */
106103
FEATURE_CHECK_CONSENT: string;
107104

0 commit comments

Comments
 (0)