Merge pull request #7172 from element-hq/feature/bma/mergedManifest

Add check on merged manifest
This commit is contained in:
Benoit Marty
2026-07-10 14:53:17 +02:00
committed by GitHub
5 changed files with 132 additions and 3 deletions
+12 -1
View File
@@ -104,7 +104,18 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Compile release sources
if: ${{ matrix.variant == 'release' }}
run: ./gradlew bundleGplayRelease -PallWarningsAsErrors=true $CI_GRADLE_ARG_PROPERTIES
run: |
./gradlew assembleGplayRelease -PallWarningsAsErrors=true $CI_GRADLE_ARG_PROPERTIES
./gradlew bundleGplayRelease -PallWarningsAsErrors=true $CI_GRADLE_ARG_PROPERTIES
- name: Run aapt dump
if: ${{ matrix.variant == 'release' }}
run: |
$ANDROID_HOME/build-tools/37.0.0/aapt dump badging \
./app/build/outputs/apk/gplay/release/app-gplay-universal-release.apk \
> /tmp/currentAaptDump.txt
- name: Check manifest has not changed
if: ${{ matrix.variant == 'release' }}
run: diff /tmp/currentAaptDump.txt ./tools/manifest/gplay/release/aaptDump.txt
- name: Compile nightly sources
if: ${{ matrix.variant == 'nightly' }}
run: ./gradlew compileGplayNightlySources -PallWarningsAsErrors=true $CI_GRADLE_ARG_PROPERTIES
+1
View File
@@ -39,6 +39,7 @@ jobs:
./tools/localazy/downloadStrings.sh --all
./tools/localazy/importSupportedLocalesFromLocalazy.py
./tools/test/generateAllScreenshots.py
./tools/manifest/aaptDump.sh
- name: Create Pull Request for Strings
uses: peter-evans/create-pull-request@5f6978faf089d4d20b00c7766989d076bb2fc7f1 # v8.1.1
with:
+13
View File
@@ -0,0 +1,13 @@
#! /bin/bash
# Copyright (c) 2026 Element Creations Ltd.
#
# SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial.
# Please see LICENSE files in the repository root for full details.
# Assemble Gplay Release
./gradlew assembleGplayRelease
# Dump information
$ANDROID_HOME/build-tools/37.0.0/aapt dump badging ./app/build/outputs/apk/gplay/release/app-gplay-universal-release.apk \
> ./tools/manifest/gplay/release/aaptDump.txt
+96
View File
@@ -0,0 +1,96 @@
package: name='io.element.android.x' versionCode='202607000' versionName='26.07.0' platformBuildVersionName='17' platformBuildVersionCode='37' compileSdkVersion='37' compileSdkVersionCodename='17'
sdkVersion:'24'
targetSdkVersion:'37'
uses-permission: name='android.permission.REQUEST_INSTALL_PACKAGES'
uses-permission: name='android.permission.POST_NOTIFICATIONS'
uses-permission: name='android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS'
uses-permission: name='android.permission.RECORD_AUDIO'
uses-permission: name='android.permission.ACCESS_COARSE_LOCATION'
uses-permission: name='android.permission.ACCESS_FINE_LOCATION'
uses-permission: name='android.permission.FOREGROUND_SERVICE'
uses-permission: name='android.permission.FOREGROUND_SERVICE_LOCATION'
uses-permission: name='android.permission.CAMERA'
uses-permission: name='android.permission.MODIFY_AUDIO_SETTINGS'
uses-permission: name='android.permission.WAKE_LOCK'
uses-permission: name='android.permission.FOREGROUND_SERVICE_MICROPHONE'
uses-permission: name='android.permission.USE_FULL_SCREEN_INTENT'
uses-permission: name='android.permission.ACCESS_NETWORK_STATE'
uses-permission: name='android.permission.INTERNET'
uses-permission: name='android.permission.VIBRATE'
uses-permission: name='android.permission.ACCESS_WIFI_STATE'
uses-permission: name='android.permission.USE_BIOMETRIC'
uses-permission: name='android.permission.USE_FINGERPRINT'
uses-permission: name='com.google.android.c2dm.permission.RECEIVE'
uses-permission: name='android.permission.RECEIVE_BOOT_COMPLETED'
uses-permission: name='io.element.android.x.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION'
application-label:'Element X'
application-label-be:'Element X'
application-label-bg:'Element X'
application-label-ca:'Element X'
application-label-cs:'Element X'
application-label-cy:'Element X'
application-label-da:'Element X'
application-label-de:'Element X'
application-label-el:'Element X'
application-label-en-US:'Element X'
application-label-es:'Element X'
application-label-et:'Element X'
application-label-eu:'Element X'
application-label-fa:'Element X'
application-label-fi:'Element X'
application-label-fr:'Element X'
application-label-hr:'Element X'
application-label-hu:'Element X'
application-label-in:'Element X'
application-label-it:'Element X'
application-label-ja:'Element X'
application-label-ka:'Element X'
application-label-ko:'Element X'
application-label-lt:'Element X'
application-label-nb:'Element X'
application-label-nl:'Element X'
application-label-pl:'Element X'
application-label-pt:'Element X'
application-label-pt-BR:'Element X'
application-label-ro:'Element X'
application-label-ru:'Element X'
application-label-sk:'Element X'
application-label-sv:'Element X'
application-label-tr:'Element X'
application-label-uk:'Element X'
application-label-ur:'Element X'
application-label-uz:'Element X'
application-label-vi:'Element X'
application-label-zh:'Element X'
application-label-zh-CN:'Element X'
application-label-zh-TW:'Element X'
application-icon-120:'res/BW.xml'
application-icon-160:'res/BW.xml'
application-icon-240:'res/BW.xml'
application-icon-320:'res/BW.xml'
application-icon-480:'res/BW.xml'
application-icon-640:'res/BW.xml'
application-icon-65534:'res/BW.xml'
application-icon-65535:'res/BW.xml'
application: label='Element X' icon='res/BW.xml'
launchable-activity: name='io.element.android.x.MainActivity' label='' icon=''
uses-library-not-required:'androidx.window.extensions'
uses-library-not-required:'androidx.window.sidecar'
feature-group: label=''
uses-feature-not-required: name='android.hardware.camera'
uses-feature-not-required: name='android.hardware.microphone'
uses-feature-not-required: name='android.hardware.vulkan.version' version='4194307'
uses-feature-not-required: name='android.hardware.wifi'
uses-feature: name='android.hardware.faketouch'
uses-implied-feature: name='android.hardware.faketouch' reason='default feature for all apps'
uses-feature: name='android.hardware.location'
uses-implied-feature: name='android.hardware.location' reason='requested android.permission.ACCESS_COARSE_LOCATION permission, and requested android.permission.ACCESS_FINE_LOCATION permission'
main
other-activities
other-receivers
other-services
supports-screens: 'small' 'normal' 'large' 'xlarge'
supports-any-density: 'true'
locales: '--_--' 'be' 'bg' 'ca' 'cs' 'cy' 'da' 'de' 'el' 'en-US' 'es' 'et' 'eu' 'fa' 'fi' 'fr' 'hr' 'hu' 'in' 'it' 'ja' 'ka' 'ko' 'lt' 'nb' 'nl' 'pl' 'pt' 'pt-BR' 'ro' 'ru' 'sk' 'sv' 'tr' 'uk' 'ur' 'uz' 'vi' 'zh' 'zh-CN' 'zh-TW'
densities: '120' '160' '240' '320' '480' '640' '65534' '65535'
native-code: 'arm64-v8a' 'armeabi-v7a' 'x86' 'x86_64'
+10 -2
View File
@@ -151,12 +151,20 @@ sed "s/private const val versionMonth = .*/private const val versionMonth = ${ve
sed "s/private const val versionReleaseNumber = .*/private const val versionReleaseNumber = ${versionReleaseNumber}/" ${versionsFileBak} > ${versionsFile}
rm ${versionsFileBak}
printf -v versionReleaseNumber2Digits "%02d" "${versionReleaseNumber}"
versionCode="20${versionYear}${versionMonth}${versionReleaseNumber2Digits}0"
# Update the file aaptDump.txt with the new version
aaptDumpFile="./tools/manifest/gplay/release/aaptDump.txt"
sed "s/versionCode='[0-9]*'/versionCode='${versionCode}'/" ${aaptDumpFile} > ${aaptDumpFile}.bak
sed "s/versionName='[0-9]*\.[0-9]*\.[0-9]*'/versionName='${version}'/" ${aaptDumpFile}.bak > ${aaptDumpFile}
rm ${aaptDumpFile}.bak
git commit -a -m "Setting version for the release ${version}"
printf "\n================================================================================\n"
printf "Creating fastlane file...\n"
printf -v versionReleaseNumber2Digits "%02d" "${versionReleaseNumber}"
fastlaneFile="20${versionYear}${versionMonth}${versionReleaseNumber2Digits}0.txt"
fastlaneFile="${versionCode}.txt"
fastlanePathFile="./fastlane/metadata/android/en-US/changelogs/${fastlaneFile}"
printf "Main changes in this version: bug fixes and improvements.\nFull changelog: https://github.com/element-hq/element-x-android/releases" > "${fastlanePathFile}"