Skip to content

Commit a741863

Browse files
committed
Merge branch 'develop' into valere/rtc/voice_call
2 parents fed5c00 + fdbe518 commit a741863

File tree

4,751 files changed

+27458
-15529
lines changed

Some content is hidden

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

4,751 files changed

+27458
-15529
lines changed

.github/renovate.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@
2222
{
2323
"versioning": "semver",
2424
"matchPackageNames": [
25-
"/^org.maplibre/"
25+
"/^org.maplibre/",
26+
"/^org.jetbrains.kotlinx:kotlinx-datetime/"
2627
]
2728
}
2829
]

.github/workflows/build.yml

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ on:
99

1010
# Enrich gradle.properties for CI/CD
1111
env:
12-
GRADLE_OPTS: -Dorg.gradle.jvmargs=-Xmx9g -XX:MaxMetaspaceSize=512m -Dfile.encoding=UTF-8 -XX:+HeapDumpOnOutOfMemoryError -XX:+UseG1GC -Dkotlin.daemon.jvm.options=-Xmx4g
12+
GRADLE_OPTS: -Dorg.gradle.jvmargs=-Xmx8g -XX:MaxMetaspaceSize=512m -Dfile.encoding=UTF-8 -XX:+HeapDumpOnOutOfMemoryError -XX:+UseG1GC -Dkotlin.daemon.jvm.options=-Xmx4g
1313
CI_GRADLE_ARG_PROPERTIES: --stacktrace -Dsonar.gradle.skipCompile=true --no-configuration-cache
1414

1515
jobs:
@@ -25,6 +25,20 @@ jobs:
2525
group: ${{ github.ref == 'refs/heads/develop' && format('build-develop-{0}-{1}', matrix.variant, github.sha) || format('build-{0}-{1}', matrix.variant, github.ref) }}
2626
cancel-in-progress: true
2727
steps:
28+
- name: Free Disk Space (Ubuntu)
29+
uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be
30+
with:
31+
# This might remove tools that are actually needed, if set to "true" but frees about 6 GB
32+
tool-cache: true
33+
# All of these default to true, but we should only need the 'android' one (and maybe swap-storage?)
34+
android: false
35+
dotnet: true
36+
haskell: true
37+
# This takes way too long to run (~2 minutes) and it saves only ~5.5GB
38+
large-packages: false
39+
docker-images: true
40+
swap-storage: false
41+
2842
- uses: actions/checkout@v6
2943
with:
3044
# Ensure we are building the branch and not the branch after being merged on develop
@@ -54,22 +68,12 @@ jobs:
5468
run: ./gradlew :app:assembleGplayDebug app:assembleFDroidDebug -PallWarningsAsErrors=true $CI_GRADLE_ARG_PROPERTIES
5569
- name: Upload debug APKs
5670
if: ${{ matrix.variant == 'debug' }}
57-
uses: actions/upload-artifact@v6
71+
uses: actions/upload-artifact@v7
5872
with:
5973
name: elementx-debug
6074
path: |
6175
app/build/outputs/apk/gplay/debug/*-universal-debug.apk
6276
app/build/outputs/apk/fdroid/debug/*-universal-debug.apk
63-
- name: Upload x86_64 APK for Maestro
64-
if: ${{ matrix.variant == 'debug' }}
65-
uses: actions/upload-artifact@v6
66-
with:
67-
name: elementx-apk-maestro
68-
path: |
69-
app/build/outputs/apk/gplay/debug/app-gplay-x86_64-debug.apk
70-
retention-days: 5
71-
overwrite: true
72-
if-no-files-found: error
7377
- uses: rnkdsh/action-upload-diawi@4e1421305be7cfc510d05f47850262eeaf345108 # v1.5.12
7478
id: diawi
7579
# Do not fail the whole build if Diawi upload fails

.github/workflows/build_enterprise.yml

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ on:
99

1010
# Enrich gradle.properties for CI/CD
1111
env:
12-
GRADLE_OPTS: -Dorg.gradle.jvmargs=-Xmx9g -XX:MaxMetaspaceSize=512m -Dfile.encoding=UTF-8 -XX:+HeapDumpOnOutOfMemoryError -XX:+UseG1GC -Dkotlin.daemon.jvm.options=-Xmx4g
12+
GRADLE_OPTS: -Dorg.gradle.jvmargs=-Xmx8g -XX:MaxMetaspaceSize=512m -Dfile.encoding=UTF-8 -XX:+HeapDumpOnOutOfMemoryError -XX:+UseG1GC -Dkotlin.daemon.jvm.options=-Xmx4g
1313
CI_GRADLE_ARG_PROPERTIES: --stacktrace -Dsonar.gradle.skipCompile=true --no-configuration-cache
1414

1515
jobs:
@@ -27,6 +27,20 @@ jobs:
2727
group: ${{ github.ref == 'refs/heads/develop' && format('build-develop-enterprise-{0}-{1}', matrix.variant, github.sha) || format('build-enterprise-{0}-{1}', matrix.variant, github.ref) }}
2828
cancel-in-progress: true
2929
steps:
30+
- name: Free Disk Space (Ubuntu)
31+
uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be
32+
with:
33+
# This might remove tools that are actually needed, if set to "true" but frees about 6 GB
34+
tool-cache: true
35+
# All of these default to true, but we should only need the 'android' one (and maybe swap-storage?)
36+
android: false
37+
dotnet: true
38+
haskell: true
39+
# This takes way too long to run (~2 minutes) and it saves only ~5.5GB
40+
large-packages: false
41+
docker-images: true
42+
swap-storage: false
43+
3044
- uses: actions/checkout@v6
3145
with:
3246
# Ensure we are building the branch and not the branch after being merged on develop
@@ -62,7 +76,7 @@ jobs:
6276
run: ./gradlew :app:assembleGplayDebug -PallWarningsAsErrors=true $CI_GRADLE_ARG_PROPERTIES
6377
- name: Upload debug Enterprise APKs
6478
if: ${{ matrix.variant == 'debug' }}
65-
uses: actions/upload-artifact@v6
79+
uses: actions/upload-artifact@v7
6680
with:
6781
name: elementx-enterprise-debug
6882
path: |

.github/workflows/maestro-local.yml

Lines changed: 37 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ on:
77

88
# Enrich gradle.properties for CI/CD
99
env:
10-
GRADLE_OPTS: -Dorg.gradle.jvmargs=-Xmx9g -XX:MaxMetaspaceSize=512m -Dfile.encoding=UTF-8 -XX:+HeapDumpOnOutOfMemoryError -XX:+UseG1GC -Dkotlin.daemon.jvm.options=-Xmx4g
10+
GRADLE_OPTS: -Dorg.gradle.jvmargs=-Xmx8g -XX:MaxMetaspaceSize=512m -Dfile.encoding=UTF-8 -XX:+HeapDumpOnOutOfMemoryError -XX:+UseG1GC -Dkotlin.daemon.jvm.options=-Xmx4g
1111
CI_GRADLE_ARG_PROPERTIES: --stacktrace --no-daemon -Dsonar.gradle.skipCompile=true --no-configuration-cache
1212
ARCH: x86_64
1313
DEVICE: pixel_7_pro
@@ -18,11 +18,24 @@ jobs:
1818
build-apk:
1919
name: Build APK
2020
runs-on: ubuntu-latest
21-
# Allow one per PR.
2221
concurrency:
23-
group: ${{ format('maestro-{0}', github.ref) }}
22+
group: ${{ format('maestro-build-{0}', github.ref) }}
2423
cancel-in-progress: true
2524
steps:
25+
- name: Free Disk Space (Ubuntu)
26+
uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be
27+
with:
28+
# This might remove tools that are actually needed, if set to "true" but frees about 6 GB
29+
tool-cache: true
30+
# All of these default to true, but we should only need the 'android' one (and maybe swap-storage?)
31+
android: false
32+
dotnet: true
33+
haskell: true
34+
# This takes way too long to run (~2 minutes) and it saves only ~5.5GB
35+
large-packages: false
36+
docker-images: true
37+
swap-storage: false
38+
2639
- uses: actions/checkout@v6
2740
with:
2841
# Ensure we are building the branch and not the branch after being merged on develop
@@ -44,7 +57,7 @@ jobs:
4457
ELEMENT_ANDROID_MAPTILER_LIGHT_MAP_ID: ${{ secrets.MAPTILER_LIGHT_MAP_ID }}
4558
ELEMENT_ANDROID_MAPTILER_DARK_MAP_ID: ${{ secrets.MAPTILER_DARK_MAP_ID }}
4659
- name: Upload APK as artifact
47-
uses: actions/upload-artifact@v6
60+
uses: actions/upload-artifact@v7
4861
with:
4962
name: elementx-apk-maestro
5063
path: |
@@ -57,10 +70,10 @@ jobs:
5770
name: Maestro test suite
5871
runs-on: ubuntu-latest
5972
needs: [ build-apk ]
60-
# Allow one per PR.
73+
# Allow only one to run at a time, since they use the same environment.
74+
# Otherwise, tests running in parallel can break each other.
6175
concurrency:
62-
group: ${{ format('maestro-{0}', github.ref) }}
63-
cancel-in-progress: true
76+
group: maestro-test
6477
steps:
6578
- uses: actions/checkout@v6
6679
if: (github.event_name == 'pull_request' && github.event.pull_request.fork == null) || github.event_name == 'workflow_dispatch'
@@ -69,7 +82,7 @@ jobs:
6982
# https://github.com/actions/checkout/issues/881
7083
ref: ${{ github.ref }}
7184
- name: Download APK artifact from previous job
72-
uses: actions/download-artifact@v7
85+
uses: actions/download-artifact@v8
7386
with:
7487
name: elementx-apk-maestro
7588
- name: Enable KVM group perms
@@ -102,14 +115,29 @@ jobs:
102115
script: |
103116
.github/workflows/scripts/maestro/maestro-local-with-screen-recording.sh app-gplay-x86_64-debug.apk
104117
- name: Upload test results
105-
uses: actions/upload-artifact@v6
118+
uses: actions/upload-artifact@v7
106119
with:
107120
name: test-results
108121
path: |
109122
~/.maestro/tests/**
110123
retention-days: 5
111124
overwrite: true
112125
if-no-files-found: error
126+
- name: Update summary (success)
127+
if: steps.maestro_test.outcome == 'success'
128+
run: |
129+
echo "### Maestro tests worked :rocket:!" >> $GITHUB_STEP_SUMMARY
130+
- name: Update summary (failure)
131+
if: steps.maestro_test.outcome != 'success'
132+
run: |
133+
LOG_FILE=$(find ~/.maestro/tests/ -name maestro.log)
134+
echo "Log file: $LOG_FILE"
135+
LOG_LINES="$(tail -n 30 $LOG_FILE)"
136+
echo "### :x: Maestro tests failed...
137+
138+
\`\`\`
139+
$LOG_LINES
140+
\`\`\`" >> $GITHUB_STEP_SUMMARY
113141
- name: Fail the workflow in case of error in test
114142
if: steps.maestro_test.outcome != 'success'
115143
run: |

.github/workflows/nightly.yml

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ on:
77
- cron: "0 4 * * *"
88

99
env:
10-
GRADLE_OPTS: -Dorg.gradle.jvmargs=-Xmx9g -XX:MaxMetaspaceSize=512m -Dfile.encoding=UTF-8 -XX:+HeapDumpOnOutOfMemoryError -XX:+UseG1GC -Dkotlin.daemon.jvm.options=-Xmx4g
10+
GRADLE_OPTS: -Dorg.gradle.jvmargs=-Xmx8g -XX:MaxMetaspaceSize=512m -Dfile.encoding=UTF-8 -XX:+HeapDumpOnOutOfMemoryError -XX:+UseG1GC -Dkotlin.daemon.jvm.options=-Xmx4g
1111
CI_GRADLE_ARG_PROPERTIES: --stacktrace --no-daemon -Dsonar.gradle.skipCompile=true --no-configuration-cache
1212

1313
jobs:
@@ -16,6 +16,20 @@ jobs:
1616
runs-on: ubuntu-latest
1717
if: ${{ github.repository == 'element-hq/element-x-android' }}
1818
steps:
19+
- name: Free Disk Space (Ubuntu)
20+
uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be
21+
with:
22+
# This might remove tools that are actually needed, if set to "true" but frees about 6 GB
23+
tool-cache: true
24+
# All of these default to true, but we should only need the 'android' one (and maybe swap-storage?)
25+
android: false
26+
dotnet: true
27+
haskell: true
28+
# This takes way too long to run (~2 minutes) and it saves only ~5.5GB
29+
large-packages: false
30+
docker-images: true
31+
swap-storage: false
32+
1933
- uses: actions/checkout@v6
2034
- name: Use JDK 21
2135
uses: actions/setup-java@v5

.github/workflows/nightlyReports.yml

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ on:
88

99
# Enrich gradle.properties for CI/CD
1010
env:
11-
GRADLE_OPTS: -Dorg.gradle.jvmargs=-Xmx9g -XX:MaxMetaspaceSize=512m -Dfile.encoding=UTF-8 -XX:+HeapDumpOnOutOfMemoryError -XX:+UseG1GC -Dkotlin.daemon.jvm.options=-Xmx4g
11+
GRADLE_OPTS: -Dorg.gradle.jvmargs=-Xmx8g -XX:MaxMetaspaceSize=512m -Dfile.encoding=UTF-8 -XX:+HeapDumpOnOutOfMemoryError -XX:+UseG1GC -Dkotlin.daemon.jvm.options=-Xmx4g
1212
CI_GRADLE_ARG_PROPERTIES: --stacktrace -Dsonar.gradle.skipCompile=true --no-configuration-cache
1313

1414
jobs:
@@ -17,6 +17,20 @@ jobs:
1717
runs-on: ubuntu-latest
1818
if: ${{ github.repository == 'element-hq/element-x-android' }}
1919
steps:
20+
- name: Free Disk Space (Ubuntu)
21+
uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be
22+
with:
23+
# This might remove tools that are actually needed, if set to "true" but frees about 6 GB
24+
tool-cache: true
25+
# All of these default to true, but we should only need the 'android' one (and maybe swap-storage?)
26+
android: false
27+
dotnet: true
28+
haskell: true
29+
# This takes way too long to run (~2 minutes) and it saves only ~5.5GB
30+
large-packages: false
31+
docker-images: true
32+
swap-storage: false
33+
2034
- name: ⏬ Checkout with LFS
2135
uses: nschloe/action-cached-lfs-checkout@f46300cd8952454b9f0a21a3d133d4bd5684cfc2 # v1.2.3
2236

@@ -42,7 +56,7 @@ jobs:
4256

4357
- name: ✅ Upload kover report
4458
if: always()
45-
uses: actions/upload-artifact@v6
59+
uses: actions/upload-artifact@v7
4660
with:
4761
name: kover-results
4862
path: |
@@ -74,7 +88,7 @@ jobs:
7488
run: ./gradlew dependencyCheckAnalyze $CI_GRADLE_ARG_PROPERTIES
7589
- name: Upload dependency analysis
7690
if: always()
77-
uses: actions/upload-artifact@v6
91+
uses: actions/upload-artifact@v7
7892
with:
7993
name: dependency-analysis
8094
path: build/reports/dependency-check-report.html

.github/workflows/quality.yml

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,28 @@ on:
99

1010
# Enrich gradle.properties for CI/CD
1111
env:
12-
GRADLE_OPTS: -Dorg.gradle.jvmargs=-Xmx9g -XX:MaxMetaspaceSize=512m -Dfile.encoding=UTF-8 -XX:+HeapDumpOnOutOfMemoryError -XX:+UseG1GC -Dkotlin.daemon.jvm.options=-Xmx4g
12+
GRADLE_OPTS: -Dorg.gradle.jvmargs=-Xmx8g -XX:MaxMetaspaceSize=512m -Dfile.encoding=UTF-8 -XX:+HeapDumpOnOutOfMemoryError -XX:+UseG1GC -Dkotlin.daemon.jvm.options=-Xmx4g
1313
CI_GRADLE_ARG_PROPERTIES: --stacktrace --no-daemon -Dsonar.gradle.skipCompile=true --no-configuration-cache
1414

1515
jobs:
1616
checkScript:
1717
name: Search for forbidden patterns
1818
runs-on: ubuntu-latest
1919
steps:
20+
- name: Free Disk Space (Ubuntu)
21+
uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be
22+
with:
23+
# This might remove tools that are actually needed, if set to "true" but frees about 6 GB
24+
tool-cache: true
25+
# All of these default to true, but we should only need the 'android' one (and maybe swap-storage?)
26+
android: false
27+
dotnet: true
28+
haskell: true
29+
# This takes way too long to run (~2 minutes) and it saves only ~5.5GB
30+
large-packages: false
31+
docker-images: true
32+
swap-storage: false
33+
2034
- uses: actions/checkout@v6
2135
- name: Add SSH private keys for submodule repositories
2236
uses: webfactory/ssh-agent@a6f90b1f127823b31d4d4a8d96047790581349bd # v0.9.1
@@ -97,7 +111,7 @@ jobs:
97111
run: ./gradlew :tests:konsist:testDebugUnitTest $CI_GRADLE_ARG_PROPERTIES --no-daemon
98112
- name: Upload reports
99113
if: always()
100-
uses: actions/upload-artifact@v6
114+
uses: actions/upload-artifact@v7
101115
with:
102116
name: konsist-report
103117
path: |
@@ -174,7 +188,7 @@ jobs:
174188
run: ./gradlew :app:lintGplayDebug :app:lintFdroidDebug lintDebug $CI_GRADLE_ARG_PROPERTIES --continue
175189
- name: Upload reports
176190
if: always()
177-
uses: actions/upload-artifact@v6
191+
uses: actions/upload-artifact@v7
178192
with:
179193
name: linting-report
180194
path: |
@@ -214,7 +228,7 @@ jobs:
214228
run: ./gradlew detekt $CI_GRADLE_ARG_PROPERTIES --no-daemon
215229
- name: Upload reports
216230
if: always()
217-
uses: actions/upload-artifact@v6
231+
uses: actions/upload-artifact@v7
218232
with:
219233
name: detekt-report
220234
path: |
@@ -254,7 +268,7 @@ jobs:
254268
run: ./gradlew ktlintCheck $CI_GRADLE_ARG_PROPERTIES
255269
- name: Upload reports
256270
if: always()
257-
uses: actions/upload-artifact@v6
271+
uses: actions/upload-artifact@v7
258272
with:
259273
name: ktlint-report
260274
path: |
@@ -317,7 +331,7 @@ jobs:
317331
# https://github.com/actions/checkout/issues/881
318332
ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.ref }}
319333
- name: Download reports from previous jobs
320-
uses: actions/download-artifact@v7
334+
uses: actions/download-artifact@v8
321335
- name: Prepare Danger
322336
if: always()
323337
run: |

.github/workflows/recordScreenshots.yml

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ on:
77

88
# Enrich gradle.properties for CI/CD
99
env:
10-
GRADLE_OPTS: -Dorg.gradle.jvmargs=-Xmx9g -XX:MaxMetaspaceSize=512m -Dfile.encoding=UTF-8 -XX:+HeapDumpOnOutOfMemoryError -XX:+UseG1GC -Dkotlin.daemon.jvm.options=-Xmx4g -Dsonar.gradle.skipCompile=true
10+
GRADLE_OPTS: -Dorg.gradle.jvmargs=-Xmx8g -XX:MaxMetaspaceSize=512m -Dfile.encoding=UTF-8 -XX:+HeapDumpOnOutOfMemoryError -XX:+UseG1GC -Dkotlin.daemon.jvm.options=-Xmx4g -Dsonar.gradle.skipCompile=true
1111
CI_GRADLE_ARG_PROPERTIES: --no-configuration-cache
1212

1313
jobs:
@@ -17,6 +17,20 @@ jobs:
1717
if: github.event_name == 'workflow_dispatch' || github.event.label.name == 'Record-Screenshots'
1818

1919
steps:
20+
- name: Free Disk Space (Ubuntu)
21+
uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be
22+
with:
23+
# This might remove tools that are actually needed, if set to "true" but frees about 6 GB
24+
tool-cache: true
25+
# All of these default to true, but we should only need the 'android' one (and maybe swap-storage?)
26+
android: false
27+
dotnet: true
28+
haskell: true
29+
# This takes way too long to run (~2 minutes) and it saves only ~5.5GB
30+
large-packages: false
31+
docker-images: true
32+
swap-storage: false
33+
2034
- name: Remove Record-Screenshots label
2135
if: github.event.label.name == 'Record-Screenshots'
2236
uses: actions-ecosystem/action-remove-labels@2ce5d41b4b6aa8503e285553f75ed56e0a40bae0 # v1.3.0

0 commit comments

Comments
 (0)