Commit Graph

59 Commits (develop)

Author SHA1 Message Date
Doug 56a9820ded
Add remaining iOS 17 introspections. (#1806)
* Update compound.

* Update Ruby gems.

* Skip smudging in Fastlane.

* Link Git LFS for Xcode in setup-project.
2023-09-29 17:29:27 +01:00
Stefan Ceriu a05c3e3774
Fix various flakey unit tests (#1783)
* Fix flakey emoji provider tests

* Fix flakey RoomScreenViewModel tests

* Fix flakey HomeScreenViewModel tests

* Fix flakey RoomMemberListScreen tests, problem with bindings getting overriden and deferFulfillment cancellable not getting stored

* Fix flakey RoomNotificationSettingsScreen tests and crashes

* Fix flakey RoomMemberDetailsScreen tests

* Deprecate old `deferFulfillment` and `nextViewState` methods

* Convert more files to the new `deferFulfillment`

* Converted the rest of the tests to the new deferFulfillment

* Removed now unused `nextViewState` and `deferFulfillment`

* Remove automatic retries from unit tests

* Reset analytics flag after running unit tests

* Address PR comments

* Introduce a new `deferFulfillment(publisher, keyPath, transitionValues)` method and use it where appropiate
2023-09-26 13:28:29 +03:00
Stefan Ceriu 612a28b7e2 Release script fixes: prevent sed from incorrectly matching other versions, correctly increment the path version past .9 which would previously increment the minor 2023-09-20 18:17:32 +03:00
Mauro 341b177e23
Prefire basic implementation (#1743)
* prefire basic implementation

force the unit tests to run on iPhone 14

skipping plugin validation

archive artifacts

better workflow

removed the OS restriction


custom stencil

new test file


* git lfs

* lfs

* test

* customised the stencil to support our internal protocol

* for now we can remove the OS check from the stencil

* added a delay

* tests have been moved

* improvement

* recommit

* perceptual precision lowered

* updated snapshot testing and selected also iOS version

* added ios version control
2023-09-20 14:07:18 +02:00
Stefan Ceriu ecc549b280 Feature flag to OTLP tracing 2023-08-24 15:12:19 +03:00
Stefan Ceriu 611baf194a
Xcode cloud sentry tweaks (#1459)
* Increase the sentry log level used in debug symbol uploading

* Set sentry max http retries to 5

* Revert: set sentry max http retries to 5 as it doesn't work

* Implement automatic sentry_upload_dif retries
2023-08-08 12:07:55 +03:00
Doug 22c0e38c5d
Upload to sentry before releasing/tagging. (#1457)
This is to prevent tags being created for CI runs that have failed.
2023-08-07 14:52:54 +01:00
Stefan Ceriu 1e8b894298 Prevent xcodegen from creating temporary references in the project file 2023-08-07 12:59:48 +03:00
Doug 07651bd3f5
Specify ElementX target for coverage in integrations plan. (#1398) 2023-07-27 16:03:26 +01:00
Doug 8f2904701b
Fix more unit tests. (#1406)
- Randomise test order.
- Use deferred fulfilment in more places.
- Make sure to change something before awaiting the fulfilment.
- Build a fresh AppSettings after reset().
- Retry tests on failure.
2023-07-27 12:38:48 +01:00
Alfonso Grillo a7256bb486
Move Map Libre API key to Xcode Cloud (#1313)
* Add config_production lane

* Add maplibre to .gitignore

* Add setupMapLibreKey

* Add documentation

* Fix failing UTs

* Fix more UTs

* Cleanup

* Add secrets.xcconfig

* Cleanup gitignore file

* Update post-checkout hook

* Cleanup SetupProject

* Update project

* Remove leftover in SetupProject

* Cleanup project.yml

* Add fastlane-plugin-xcconfig

* Improve test

* Update docs
2023-07-14 10:19:38 +02:00
Doug dff18d7851
UI Tests fixes. (#1322)
* Fix broken UI tests and update snapshots.

* Tweak workflow.

* Update schedule and zip the result bundle.
2023-07-13 16:10:41 +01:00
Michael Kaye 5e97a4a0fa
Performance tests (#1301)
* Add signposts to performance tests.

- Update flow to include support for the migration screen.

* If the welcome screen shows, click on the button.

* Ensure a clean simulator each run.

* Add accessibility identifier for migration screen if required.

* Handle walking into the room and back out again.

* use iphone 14 pro to match what's used in xcode.

* Remove ApplicationTests as duplicated in LoginTests.

We measure app startup time in LoginTests as part of the flow - we may as well avoid spending 60s doing only that measurement in ApplicationTests

* Sleep 10s, the ui is otherwise showing up in random order.

* Revert "Remove ApplicationTests as duplicated in LoginTests."

This reverts commit 8670710315.

* Update script to parse out correct values from results file.

* Allow cancellation of password prompt in any order.

* Remove test timeout, performance tests will always take a while.

* Adjust parsing further

* Remove ApplicationTests.

* Move to a more elegant way to wait for something to disappear.

* Linting.

* Fix unit tests.


Co-authored-by: Doug <>
Co-authored-by: Doug <>
2023-07-11 10:32:24 +01:00
Doug a88df388f9
Update Fastlane's upload URL for Sentry. (#1260) 2023-07-05 19:47:51 +01:00
Michael Kaye 28d241d39b
Stop asserting integration test run time & move to performance testing runner. (#1132)
* Stop asserting integration test run time.
* Move integration testing to the perf runner.
2023-06-23 13:44:33 +01:00
Stefan Ceriu 09ed9ddff5 Fix nightly icon label generation after switching to single image source
- it was techincally wrong before as it was hardcoded to 30 points for all images
- now it's reading the image height and using a fifth of it
2023-06-14 11:16:38 +03:00
Stefan Ceriu a1fdfd068a
Fix UI tests (#950)
* Fixed unstored weak reference warning

* Prevent the timeline from jumping whenever we access XCUIApplication properties

* Prevent UI tests from causing side effects on the timeline

* Update userSession reference screenshots

* Fix create room UI tests

* Update inviteUsers UI test reference screenshots

* Allow certain tests to enable timeline accessibility

* Fix roomLayout tests and update reference screenshots

* Disable the testTimelineLayoutInMiddle test because of flakiness

* Update screenshots following timestamp addition

* Another attempt

* Yet another attempt, replace XCUIScreen screenshots with XCUIApplication ones, decrease delay to 1 second

* Allow tests to retry up to 3 times before failing the run
2023-05-26 17:43:38 +03:00
Stefan Ceriu 35f7ad199e Switch the diawi fastlane plugin to another source after original removal, update gems 2023-05-26 15:00:58 +03:00
Stefan Ceriu 1f8affc5fd Revert "Work around the fastlane-diawi-plugin getting deleted"
This reverts commit c2c5654966.
2023-05-26 15:00:58 +03:00
Mauro eb68f52a0f
Run single Test on CI for faster debugging (#896)
* let's disable autocorrection

* waiting some more time in flaky tests and updated the content of a test that was failing

* controlled delay waited a bit moe for the timeline to settle

* try await

* trying with a bit more waiting time after the tap and a slow velocity for the swipe

* let's try waiting more time

* workflow for a single ui test

* las try

* slow swiping tests

* commenting out flaky CI tests, for now we'll just disable them

* better description

* flaky test improvement

* disabling animations that are not needed in UITests

* code that already prevents animations in UI tests

* code improv
2023-05-17 16:15:43 +00:00
Stefan Ceriu c2c5654966 Work around the fastlane-diawi-plugin getting deleted 2023-05-15 17:06:56 +03:00
Mauro a5d555a33d
Fixing Tests for Xcode 14.3 (#888)
* settting macOS to 13, and let's runa test of... the tests

* I want the artifacts of the test, might give me some more insight in Xcode

* archive artifact

* trying a thing with the xcode version

* push notifications alert makes this test fail

* test improvement

* let's try with a very long time

* let's disable autocorrection

* sleep

* 1 seconds fixed 90% of the issue, 2 should fix 100%

* waiting some more time in flaky tests and updated the content of a test that was failing

* updated a screenshot test that had a notification

* this integration test is a bit so flaky increased the timing

* controlled delay waited a bit moe for the timeline to settle

* try await

* MainActor everywhere

* milliseconds fix

* trying with a bit more waiting time after the tap and a slow velocity for the swipe

* let's try waiting more time
2023-05-15 13:42:40 +00:00
Stefan Ceriu 16eb3311f0 Fix fastlane syntax error 2023-05-11 14:09:36 +03:00
Stefan Ceriu a762fdbc69
Tag nightlies after a successful build (#871)
* Tag nightlies after a successful build

* Tweaks and fixes after code review
2023-05-11 13:34:37 +03:00
Stefan Ceriu 521eeb2ecf
Fix missing UI tests simulator (#860)
* Fix UI and integration tests missing simulators (older)

* Update fastlane and dependencies
2023-05-09 07:43:44 +03:00
Mauro 61d42a24ba
Leave Room (#699)
* created the row in the view and the alert, and added the new function to the RoomProxy

* fixed an issue with the alert function

* handling the navigation

* fixed a bug with the detail coordinators being dismissed incorrectly when inside a stack

* implementation completed

* replaced UI screenshots

* added a test for the fixed bug of the coordinators

* trying to increase the wait time for the expectation

* improved the test

* improved the buttons UI

* uploading artifacts for unit tests

* added result bundle true

* improved the tests

* added a new test

* pr suggestions

* updating mock

* PR suggestions

* improved tests

* fixed UI tests

* pr should be ready now

* removed testing code

* reduced complexity

* fixed test

* added a an assert to the new test case

* more tests and messages cases

* pr comments addressed

* completed
2023-03-17 13:57:08 +00:00
Stefan Ceriu b0a7d05a8c
BrowserStack support (#561)
* BrowserStack support

* Add fastlane step to automatically upload builds to BrowserStack

* Add error log for when Application Groups are not available

* Use better applicationSupportDirectory API
2023-02-10 16:52:15 +02:00
Stefan Ceriu ac77743c7a
Add retry decryption encrypted timeline item debug menu option (#384)
* Fixed a couple of warnings (+2 squashed commits)
Squashed commits:
[21fbc3b0] Add changelog
[abb092c6] Add retry decryption encrypted timeline item debug menu option

* Cleanup room list state computations

* Bump the RustSDK to v1.0.25-alpha

* Fix brew CI errors: remove imagemagick and brew lock file entirely

* Fix release script version bumping

* Bump ruby dependencies
2022-12-22 13:59:38 +02:00
Stefan Ceriu 5b9d45e461 Increased fastlane xcode timeouts and integration login test expected duration (again!) 2022-12-20 12:45:00 +02:00
Aleksandrs Proskurins 114328ea65
Update codecov (#356)
* Exclude files that don't belong codecov

* Start tracking coverage from integration tests

* Added IntegrationTests to targets

* Pbxpoj file
2022-12-08 08:09:18 +00:00
Stefan Ceriu 408649c7d9 Fix fastlane main target version fetching 2022-11-24 10:35:53 +02:00
Stefan Ceriu 1102580d6c
UI test fixes (#335)
* Remove status bars when running UITests
* Remove simulator OS versions from screenshot names, be less lenient with image diffing
* Rename UITests splash screen to onboarding
* Switch tests to Xcode 14.1, remove version names for used simulators and switched from iPhone 13 Pro Max to iPhone 14
* Fix ServiceLocator and fallbackLaguage for UI tests
* Drop snapshot diffing precision to 0.99 as 0.999 triggers false negatives
* Fix server selection UI tests after exposing the sliding sync proxy configuration
* Update reference screenshots
2022-11-24 10:35:00 +02:00
Stefan Ceriu e22c038a0f
Specify and fetch the NSE provisioning profile when building Alphas (#334)
Specify and fetch the NSE provisioning profile when building Alphas
2022-11-23 14:02:54 +02:00
Stefan Ceriu cbb69624b0 Use an AppStoreConnect API key instead of username:password for alpha builds 2022-11-09 10:53:49 +02:00
Stefan Ceriu 8de0c008db
Fixed XcodeCloud release workflows (#268)
* Export python 3.9 path and fix towncrier
* Fix Xcode Cloud git setup
2022-10-26 18:06:02 +03:00
Stefan Ceriu 80babf1cd8
Xcode Cloud Support (#234)
* Removed now unnecessary code from alpha builds
* Add nightly build configuration
* Update ruby dependencies
* Stop changing the app name for PRs and Nightly, the icon is sufficient
* Add ITSAppUsesNonExemptEncryption flag as per and
* Updated app groups to reflect various environments: production, nightly and PR. Remove keychain access group as they should be inferred from the access groups
2022-10-24 16:00:17 +03:00
Stefan Ceriu e979bd808b
UI test fixes (#235)
* Fix UI test simulator versions
* Pin the used Xcode version used by fastlane to `~> 14.0.1`, as simctl status_bar overrides don't work on the Xcode14.1 RC
* Update base screenshots, fix status bar script warning, fix settings screen test
2022-10-19 21:01:35 +03:00
Doug 0e90bff34c
Switch to Xcode 14 and handle the UICollectionView-backed List. (#229)
* Fix Timeline on Xcode 14/iOS 16

Raise requirement to iOS 16+
Reduce pagination jumping.
Sonarcloud fixes.
Fix verification test.
Adopt if let optional { syntax.

* Remove unused ScrollViewReader

The ScrollViewReader didn't appear to change the behaviour.

* Fix warnings on Run Scripts.

Run script build phase 'SwiftLint' will be run during every build because it does not specify any outputs. To address this warning, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase.
2022-10-17 09:56:17 +01:00
Stefan Ceriu 8f96dc3303 Attempt fixing session verification cancellation test flakiness and pinning the Xcode version on all workflows 2022-10-14 15:14:48 +03:00
manuroe e618d9b028 Update some copyright headers 2022-09-28 12:56:10 +03:00
Stefan Ceriu a941dff744 Ignore vendor folder, add app-store release lane 2022-09-23 16:18:16 +03:00
Stefan Ceriu 142180b1f3
Various CI fixes (#161)
* Update homebrew dependencies like on the other workflows. Fixes problems caused by buggy swiftformat prebundled on the github actions macos runner

* Removed UI tests from PR tests and running them on a schedule instead. Hopefuly fixed code coverage.

* Added back simulator versions as they need to match UI test snapshots

* Allow UI tests to run on this PR

* Added back skipped UI tests

* Fix danger sometimes not working on forks and disable integration tests on them
2022-08-19 17:42:03 +03:00
Stefan Ceriu 78df4abc7f
#49, #123 - Setup UI integration and performance testing (#148) 2022-08-18 16:32:29 +03:00
ismailgulek 2cb6dc1cd9
Screenshot tests (#130)
* #9 Add snapshot testing library

* #9 Create script to boot test simulators

* #9 Create the UI test plan

* #9 Create shared schemes for test targets

* #9 Disable split view for UI tests

* #9 Fix fastlane dependencies

* #9 Add snapshot testing to the application

* #9 assert screenshots

* #9 fix swipe gestures on iPad

* #9 Fix accessing items in session verification screen

* #9 Workaround for flaky unit test

* #9 Specify scheme for alpha build

* #9 Add reference screenshots

* Update python script path and check assets for png check

* Update script path

* Use static timezone for simulator time

* Fix build after SwiftFormat

* Add changelog

* Upload failed screenshots artifact

* Always upload artifacts

* Update boot simulator script

* Update simulator overridden time

* Install pytz before tests

* Get time from Ruby script

* Disable SwiftUI animation when running UI tests

* Update screenshots after animation setting

* Include reference images in the artifact

* Update matching precision

* Update image matching precision & revert artifact content

* Include Xcode result in the artifact

* Update test output directory

* Disable gradient on splash screen for tests

* Tap next button explicitly

* Wait a bit before checking alert

* Wait 1 second

* Run SwiftFormat on project

* Ignore temporary screenshots

* Fix most of the PR remarks

* Fix conflicts

* Bump Python version to 3

* Update reference screenshots for authentication screens

* Update SwiftFormat

* Fix flakey session verification test.

* Update scheme.

Co-authored-by: Doug <>
2022-08-11 15:02:47 +03:00
Doug 839e759756 Fix release lane. 2022-07-28 14:45:04 +01:00
Stefan Ceriu 225fbd6ae0 Automatically bumping the app version and creating change commit for next release 2022-07-25 14:48:24 +03:00
Stefan Ceriu 2f69c99782 Improve release process
- remove towncrier logs from PR builds and move them to github releases
- set build version based on current time
- bump app version
2022-07-22 18:14:25 +03:00
Stefan Ceriu 0a199ee611 Drop Mac catalyst support, update app version and tag format, update fastlane plugins 2022-07-01 14:46:04 +03:00
ismailgulek cc14f1f567
Towncrier fixes (#97) 2022-06-27 20:41:00 +03:00
Stefan Ceriu c96ee095d0 Add Sentry dsym upload step for release builds 2022-06-10 14:18:37 +03:00