Commit Graph

75 Commits

Author SHA1 Message Date
Mauro b1ed870474 Support for Xcode 27 on CI (#6217)
* Run the tests on iOS 27.0

Bump the required simulator OS in the preview, UI and Compound tests, and the CI tool's default OS, from 26.5 to 27.0. Test devices stay the same.

iOS 27 writes transcoded videos 146 bytes larger, so update the expected sizes in MediaUploadingPreprocessorTests.

* Build and test on CI with Xcode 27

Select Xcode 27 in ci_common.sh and move every macOS workflow to the xcode-27 runner image, as macos-26 doesn't include Xcode 27. The Compound workflow now also creates its simulator on the iOS 27.0 runtime.

The xcode-27 runners are slower, so give the unit, Enterprise, Compound and snapshot recording jobs longer timeouts.

* Fix the preview snapshot layout on iOS 27

On iOS 27 the hosting controller applies the window's safe area when rendering, but the snapshot size comes from sizeThatFits, which ignores it. Component previews were shifted down and clipped at the bottom. Disable the hosting controller's safe area regions for these snapshots so the measured and rendered layouts match.

swift-snapshot-testing also renders into a window without a scene, and on iOS 27 a navigation stack in such a window reserves space for a large title it never shows, leaving a gap below the navigation bar. Attach the render window to the app's scene until swift-snapshot-testing handles it.

The invite users and add rooms screens sized their selected items row from a measured width stored in state, which is zero on the first layout pass, so snapshots could draw the row empty. Use containerRelativeFrame instead. The add rooms search previews now also wait for their results, and the search previews that show a clear button get a small precision tolerance, as it renders inconsistently in snapshots.

* Re-record the preview snapshots on iOS 27.0

Recorded on an iPhone SE (3rd generation) simulator running iOS 27.0 with Xcode 27.0 (27A266a). The changes come from iOS 27 rendering: text anti-aliasing, hyphenation and line breaking, navigation bars and toggles that now render in snapshots, lazy stacks that were blank on iOS 26, and pseudo-language locale formatting.

* Fix the UI tests on iOS 27

iOS 27 no longer exposes accessibility identifiers on SwiftUI menu items, so the space exploration test now finds them by label within the menu. On iPad, the start chat search field keeps focus after submitting and can swallow the next tap, so retry the tap if the create room screen doesn't appear.

* Re-record the UI test snapshots on iOS 27.0

Recorded on iPhone 17 and iPad (A16) simulators running iOS 27.0 with Xcode 27.0. The changes come from iOS 27 styling, like the keyboard height and glass borders. This also removes the iPad app lock setup snapshots, which have been orphaned since those tests stopped running on iPad.

* Fix the accessibility tests crashing on iOS 27

The accessibility tests' previews wrapper kept its ImageRenderer alive across the awaits that follow the render. On iOS 27, releasing it at that point tears down its view graph outside of a SwiftUI update, which hits an assertion and crashes the app. Release the renderer as soon as the image has been rendered.

* Keep the accessibility tests' image renderers alive on iOS 27

Releasing the ImageRenderer straight away wasn't enough: on iOS 27, releasing one that rendered a preview crashes SwiftUI whichever context it happens in. Keep the renderers alive instead. Each test launches a fresh app, so they only live for the one test.

* Share the UI tests' app settings with their mock user session

Since the user session flow reads its settings from UserSettings, the UI tests' mock user session was wrapping a fresh volatile AppSettings instead of the one the tests configure. The flags that skip onboarding weren't picked up, so every user session UI test got stuck on the notifications permission screen.

* Re-record the Compound snapshots on iOS 27.0

Apply the same safe area fix as the app's preview tests, so size-that-fits snapshots aren't clipped on iOS 27, and re-record the snapshots on an iPhone SE (3rd generation) simulator running iOS 27.0 in English (US).

* Fix a race reading the keyboard in the accessibility tests

On iOS 27 the QR code login screen's keyboard can be dismissing between checking that it exists and reading its frame, which fails the test. Snapshot it in a single query instead.
2026-09-29 17:02:48 +02:00
renovate[bot] c2f1dcc024 Update codecov/codecov-action action to v7.1.1 2026-09-24 15:50:34 +03:00
renovate[bot] a3d72aba1f Update codecov/codecov-action action to v7.1.0 2026-09-22 08:33:05 +03:00
Stefan Ceriu 0856fdc146 Improve integration test diagnostics in an attempt to catch run crashes 2026-08-10 13:19:41 +03:00
renovate[bot] e62002e7fc Update actions/checkout action to v7.0.1 (#5935)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-27 17:31:52 +00:00
renovate[bot] 3f3aa79a48 Update actions/checkout action to v7 (#5791)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-26 14:49:05 +01:00
renovate[bot] 3ed4b132b6 Update GitHub Actions to v7 2026-06-14 10:40:43 +03:00
Mauro Romito de6dab3d22 update codecov action 2026-06-11 11:42:10 +02:00
renovate[bot] 8262533b6d Update GitHub Actions to v6.0.3 2026-06-10 16:58:31 +02:00
renovate[bot] 72002f408d Update codecov/codecov-action action to v6.0.1 2026-05-26 09:59:55 +03:00
Stefan Ceriu 47de08125a Fix formatting .. according to Zed rules anyway 2026-04-21 17:19:50 +03:00
renovate[bot] 07b139b307 Update actions/upload-artifact action to v7.0.1 (#5381)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-13 18:36:40 +01:00
renovate[bot] 09970fdbab Update codecov/codecov-action action to v6 (#5309)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-01 11:09:28 +01:00
renovate[bot] 08a92c0dd0 Update codecov/codecov-action action to v5.5.4 (#5308)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-31 12:50:43 +01:00
renovate[bot] 8a65d613b1 Update codecov/codecov-action action to v5.5.3 (#5283)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-20 14:52:24 +00:00
Doug 51194c09e2 Add zizmor checks on CI. (#5161)
* Add zizmor checks on CI.

* Fix zizmor credentials warnings

* Add persist-credentials: false to action-cached-lfs-checkout too.

* Add empty permissions by default.

* Ignore pull_request_target failure and add a warning.
2026-03-05 13:54:51 +00:00
Stefan Ceriu fe4d607dc8 Silence all swift runs 2026-03-02 12:34:58 +02:00
Stefan Ceriu 1b55fb224c Add swift command for running integration tests 2026-03-02 12:34:58 +02:00
renovate[bot] 98edee0ad3 Update actions/upload-artifact action to v7 2026-02-27 07:13:36 +02:00
Stefan Ceriu 189da20419 Manually pass in the coverage and test result report files and disable automatic search. 2025-12-16 17:57:30 +02:00
Stefan Ceriu 099d1c8b8f Stop running the coverage upload steps on failed or cancelled (i.e. non-successful) runs 2025-12-16 17:57:30 +02:00
Stefan Ceriu 1e63aea550 Bump the codecov action from 3.1.6 to 5.5.2 2025-12-16 17:57:30 +02:00
Stefan Ceriu 45aec9d006 Converge on same comments and behaviours for forks and cancelled runs. 2025-12-16 17:57:30 +02:00
Stefan Ceriu 5224fd0818 Remove unnecessary Codecov CLI version argument 2025-12-16 17:57:30 +02:00
Stefan Ceriu 3e9a231443 Replace the now deprecated codecov/test-results-action
As per https://github.com/codecov/test-results-action/pull/129
2025-12-16 17:57:30 +02:00
renovate[bot] 678649a09a Update codecov/test-results-action action to v1.2.1 2025-12-16 08:53:19 +02:00
renovate[bot] e81e6b8309 Update actions/upload-artifact action to v6 2025-12-13 09:41:59 +02:00
renovate[bot] 00b2895e25 Update actions/cache action to v5 2025-12-12 09:30:05 +02:00
renovate[bot] bfa287b3f8 Update actions/checkout action to v6 2025-11-21 14:56:18 +02:00
Stefan Ceriu 99bc0b483c Switch the integration tests to the macos-26 runner
Fixes `No simulators found that are equal to the version of specifier (26.1) and greater than or equal to the version of deployment target (0)` errors
2025-11-21 11:14:06 +02:00
Doug 9cd181ef74 Add timeouts to our GitHub actions. (#4669)
6 hours is way too long and eats up the runners.
2025-10-28 18:37:15 +00:00
renovate[bot] f3415e4ef1 Update actions/upload-artifact action to v5 2025-10-27 10:10:37 +01:00
Stefan Ceriu 9874d6fd84 Switch all workflow runners back to macos-15 in hope that it will require less ram and won't time out. 2025-09-29 12:37:28 +03:00
Stefan Ceriu 43b8cfd39b Fix integration tests for Xcode 26 2025-09-26 17:20:41 +03:00
Stefan Ceriu b705eacf48 Switch workflows to the macos-26 runner 2025-09-26 17:20:41 +03:00
renovate[bot] 57686d5f9b Update actions/checkout action to v5 (#4401)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-11 18:00:27 +01:00
Doug 5f621411b2 Run Xcode select on the Translations and CalVer workflows. (#4224)
* Run Xcode select on the Translations and CalVer workflows.

* Use ci_common.sh for xcode-select instead.
2025-06-18 16:53:32 +01:00
renovate[bot] 4bcdf58e3b Update codecov/test-results-action action to v1.1.1 2025-05-23 09:35:44 +03:00
Doug eaa6dd9240 Run the UI & Integration tests once a day instead of twice with a 6 hour offset. (#4086) 2025-05-02 13:12:49 +01:00
Mauro Romito e54a588f49 run integration tests on gh ci
possible fix

possible fix

Revert "possible fix"

This reverts commit 6484648153bf8f05485050f544b136e6ca9f0be9.

Revert "possible fix"

This reverts commit abb3a58c630bb0abab7c86a31be022496d4f3b4c.

possible fix

possible solution using ui interrupt monitor

Revert "possible solution using ui interrupt monitor"

This reverts commit ed28c85a37744e615c4bc464b3e8962d8c953be9.

possible fix

Revert "possible fix"

This reverts commit 43039e73c1e1b70493f2e22aa20f925257d2e6de.

fix
2025-04-29 13:42:09 +02:00
Stefan Ceriu 8b070d9a64 Revert codecov/codecov-action changes and add allowedVersions renovate rule. 2025-03-24 13:37:17 +02:00
renovate[bot] 767eb5da30 Update GitHub Actions to v5 2025-03-24 13:37:17 +02:00
renovate[bot] 42aa2bcabc Update codecov/codecov-action action to v3.1.6 2025-03-19 08:39:11 +02:00
Stefan Ceriu ef73677518 Pin all 3rd party github actions to their full length commit SHA
- this is the recommended security practice as per https://docs.github.com/en/actions/security-for-github-actions/security-guides/security-hardening-for-github-actions#using-third-party-actions
2025-03-19 08:22:09 +02:00
Stefan Ceriu bd3f80143b Switch codecov-Action@v3 to v0.7.3 so it runs on Intel macs 2024-09-30 11:59:08 +03:00
Stefan Ceriu be09f77ae2 Switch the integration tests to the perf-only runner 2024-09-30 11:59:08 +03:00
Stefan Ceriu 9d23dec2e9 Tracing and integration test tweaks (#3336)
* Disable image and document picker integration tests as they randomly fail to load and are flakey.

* Delete any pre-existing log files

* Various tracing tweaks and fixes:
- delete the custom tracing log levels as we can't control their ouput
- implement comparable on them
- change default levels only if the new chosen level increases their verbosity

* Make logging targets mandatory and fix their logging levels

* Switch back to using the `run_tests` reset simulator flag as `fastlane snapshot reset_simulators` was too generic and slow

* Switch all integration test taps to `tapCenter` (nee forceTap) after noticing missed taps on CI.

* Make the logging file prefix explicit, let the main app not use one.

* Rename tracing configuration `target` to `currentTarget`
2024-09-27 15:08:47 +03:00
Doug 4d7d687954 Start fixing flakey tests ❄️ (#3329)
* Wait longer on authentication flow tests.

* Move default perceptualPrecision value into the snapshot preferences.

* Delay snapshots *before* setting up the test.

* Reset the simulators on GitHub before running?

* Remove a test that is now handled by Rust.

* Fix a test that was yielding.
2024-09-26 16:09:01 +01:00
Stefan Ceriu dc6d7f2985 Integration test improvements (#3330)
* Send a message from integration tests and check that it doesn't show up in the app logs
* Increase photo library timeout

* Wait for image tapping to process

* Send a message using the rich text editor too

* Wait for the various pickers to finish loading

* Set all logs to `trace` in integration tests

* Close formatting options after sending the second message

* Make sure logs are actually sent to tracing and get redirected to the right file

* Switch from using a custom `trace` log configuration to the lowest level `TracingConfiguration` we support
2024-09-26 10:15:09 +03:00
Stefan Ceriu 5acfb5dd87 Try to stop random codecov test result action failures from failing the whole test run. 2024-09-18 15:22:34 +03:00