54 Commits

Author SHA1 Message Date
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 8670710315bcd0d6c3c3046f534b32b4c728b837.

* 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 <douglase@element.io>
Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
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 c2c56549667e769a88f0c6a27ad28b73b0b6836f.
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 https://developer.apple.com/documentation/bundleresources/information_property_list/itsappusesnonexemptencryption and https://stackoverflow.com/questions/35841117/missing-compliance-status-in-testflight
* 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 <douglase@element.io>
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
Stefan Ceriu
e9f07a98b9 Update project folllowing xcodegen changes. 2022-05-16 13:27:26 +03:00
Stefan Ceriu
db1114d381 vector-im/element-x-ios/issues/13 - Towncrier setup for PR builds 2022-05-11 10:39:45 +03:00
Stefan Ceriu
fdbb0fc089 Generate cobertura xml report for codecov to pick up 2022-05-09 14:02:18 +03:00
Stefan Ceriu
864809c831 Add Codecov upload step. Remove SonarCloud one, will replace by fastlane plugin. 2022-05-09 10:03:23 +03:00
Stefan Ceriu
75695504e6 Setup test reports uploading to SonarCloud 2022-05-05 17:37:32 +03:00