status-im / status-mobile

a free (libre) open source, mobile OS for Ethereum
https://status.app
Mozilla Public License 2.0
3.92k stars 984 forks source link

chore(ci)_: bump universal apk size limit to 125MB #21486

Closed siddarthkay closed 1 month ago

siddarthkay commented 1 month ago

Summary

This PR fixes 2.31 Android Release builds from failing with

java.lang.AssertionError: APK size exceeds limit: result/StatusIm-Mobile-v2.30.0-fae4b3-universal.apk, 
size: 118.21MB, limit: 110MB. Expression: assert sizeInMB <= maxSizeMB : "APK size exceeds limit: 

Testing notes

can be skipped

Platforms

status: ready

status-im-auto commented 1 month ago

Jenkins Builds

:grey_question: Commit :hash: Finished (UTC) Duration Platform Result
:heavy_check_mark: 8f61064f #1 2024-10-23 03:15:55 ~4 min tests :page_facing_up:log
:heavy_check_mark: 8f61064f #1 2024-10-23 03:20:33 ~9 min ios :iphone:ipa :calling:
:heavy_check_mark: 8f61064f #1 2024-10-23 03:27:26 ~16 min android-e2e :robot:apk :calling:
:heavy_check_mark: 8f61064f #1 2024-10-23 03:28:20 ~17 min android :robot:apk :calling:
siddarthkay commented 1 month ago

Hey @ilmotta : sure for 2.31 the release APK is 118 MB which should not grow much as long as newer assets or npm libraries are not added to the app. I discussed this with @jakubgs and we agreed on 125 MB as a safe limit.

You're right the size of Universal APK doesn't really matter since we upload individual APKs to playstore.

There is value in identifying when APK sizes grow and having this kind of check helps us identify the commits which caused the bloating of APK size which we could introspect on if we ever reach a stage where we have to cut down on APK size.

status-im-auto commented 1 month ago

88% of end-end tests have passed

Total executed tests: 8
Failed tests: 1
Expected to fail tests: 0
Passed tests: 7
IDs of failed tests: 702843 

Failed tests (1)

Click to expand
  • Rerun failed tests

  • Class TestCommunityMultipleDeviceMerged:

    1. test_community_message_edit, id: 702843

    Device 2: Find `Text` by `xpath`: `//android.view.ViewGroup[@content-desc='chat-item']//android.widget.TextView[contains(@text,'https://status.app/c/')]`
    Device 2: Wait for element `Button` for max 120s and click when it is available

    ``` Test setup failed: critical/chats/test_public_chat_browsing.py:350: in prepare_devices self.community_2.join_community() ../views/chat_view.py:420: in join_community self.join_button.wait_and_click(120) ../views/base_element.py:100: in wait_and_click self.wait_for_visibility_of_element(sec) ../views/base_element.py:147: in wait_for_visibility_of_element raise TimeoutException( Device 2: Button by accessibility id:`show-request-to-join-screen-button` is not found on the screen after wait_for_visibility_of_element ```

    Device sessions

    Passed tests (7)

    Click to expand

    Class TestWalletMultipleDevice:

    1. test_wallet_send_asset_from_drawer, id: 727230
    2. test_wallet_send_eth, id: 727229

    Class TestCommunityOneDeviceMerged:

    1. test_restore_multiaccount_with_waku_backup_remove_switch, id: 703133
    Device sessions

    2. test_community_copy_and_paste_message_in_chat_input, id: 702742
    Device sessions

    Class TestOneToOneChatMultipleSharedDevicesNewUi:

    1. test_1_1_chat_non_latin_messages_stack_update_profile_photo, id: 702745
    Device sessions

    Class TestWalletOneDevice:

    1. test_wallet_add_remove_regular_account, id: 727231
    2. test_wallet_balance_mainnet, id: 740490