Commit Graph

38 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] 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] 8262533b6d Update GitHub Actions to v6.0.3 2026-06-10 16:58:31 +02:00
Stefan Ceriu 47de08125a Fix formatting .. according to Zed rules anyway 2026-04-21 17:19:50 +03:00
Stefan Ceriu bb311d19df Converge on the same CI bot name and email as the Swift CI scripts (Tools) 2026-04-21 17:19:50 +03:00
Doug 117a96609a Use macOS 26 for all workflows. (#5442)
And check in an out-dated Package.resolved file.
2026-04-20 10:15:34 +01:00
renovate[bot] ea6a6dd794 Update peter-evans/create-pull-request action to v8.1.1 (#5380)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-10 18:44:10 +01: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
renovate[bot] 0d34a28ec2 Update peter-evans/create-pull-request action to v8.1.0 2026-01-21 21:48:02 +02:00
renovate[bot] 2f83afdea9 Update peter-evans/create-pull-request action to v8 2025-12-10 08:32:31 +02:00
renovate[bot] fe9722a6bb Update GitHub Actions 2025-12-07 11:22:49 +02:00
renovate[bot] e7f55a9921 Update peter-evans/create-pull-request action to v7.0.9 2025-11-24 11:18:01 +02:00
renovate[bot] bfa287b3f8 Update actions/checkout action to v6 2025-11-21 14:56:18 +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
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 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 cf6afcf647 Automatically open a PR to bump the calver (#4167)
* Update our tools package to Swift 6.1

Also improves the package layout with subdirectories 📁

* Update GenerateSDKMocks to be an Async command.

* Add a tool to bump the project CalVer every month.

* Add a workflow to automatically bump the calendar version.

Note: This only does year & month, the patch is handled by the release script.
2025-06-03 17:52:16 +01: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
ElementRobot ba8edc31c7 Translations update (#3552)
* Translations update

* Run the workflow at 3am instead.

---------

Co-authored-by: Velin92 <34335419+Velin92@users.noreply.github.com>
Co-authored-by: Doug <douglase@element.io>
2024-11-25 12:20:34 +00:00
Doug 4e880f1924 Fix incorrect analytics mapping for UTDs. (#3497)
* Fix incorrect analytics mapping for UTDs.

* Upgrade GitHub workflows to use macOS 15.
2024-11-08 08:36:15 +00:00
renovate[bot] c132f67913 Update GitHub Actions 2024-09-03 18:21:22 +03:00
Stefan Ceriu c73a60dca7 Revert "Update GitHub Actions"
This reverts commit a6cdbc3329.
2024-09-03 18:14:28 +03:00
renovate[bot] a6cdbc3329 Update GitHub Actions 2024-09-03 15:50:57 +03:00
Doug 5b58ea30f6 Add changelog labels to PRs from Localazy and Renovate. (#2981) 2024-06-27 15:50:41 +01:00
renovate[bot] 1ef3cbc5b9 Update peter-evans/create-pull-request action to v6 2024-05-20 11:16:59 +01:00
renovate[bot] f197368dba Update actions/checkout action to v4 2024-05-20 11:14:18 +01:00
Stefan Ceriu 48b06519f9 Replace deprecated danger-swift-with-swiftlint docker image 2024-04-15 10:43:17 +03:00
Mauro 6f0dd83b1e improved workflow (#2488) 2024-02-20 13:05:31 +01:00
Stefan Ceriu 756b96f7ff Translation workflow fix (#2271)
* Setup the translations workflow through ci_scripts
2023-12-19 19:50:04 +02:00
Doug 09b276d94b Update most references of vector-im to element-hq (#2231)
Sonarcloud and codecov will follow in a later PR when confirmed working. Changelog ignored as it isn't particularly important with the redirect.
2023-12-12 14:34:44 +00:00
Stefan Ceriu 93e3a1a80b Media uploading (#851)
* MediaUploadingPreprocessor - Prevent images without any GPS metadata from being changed

* Add support for sending images

* Add support for sending video, audio and file attachments

* Rename MediaPickerPreview to MediaUploadPreview

* Move media uploading to the MediaUploadPreviewScreen, add waiting indicators and error handling

* Add support for pasting and drag&dropping in media for upload

* Adopt new media picker source UI, remove developer flag

* Set minimum heights for timeline loadable images

* Fix invalid camera picker file names

* Fix flakey MediaUploadingPreprocessor image tests, improve gps metadata stripping

* UITests: Update existing screenshots and add new step for the room attachment picker

* Switch all github action runners to macos-13

* Cleanup enter key and paste message composer handlers
2023-05-04 16:09:29 +03:00
Mauro Romito 84972a462e Element Bot will now open the PR 2023-04-12 19:07:16 +02:00
Mauro 0ca3e991fe Add Strings.swift to Translations workflow (#794)
* fixing locheck

* fixing locheck tool

* Revert "fixing locheck tool"

This reverts commit 9bb3dbcd70d1ecbc62b4289623b5f9e584929997.

* locheck install

* using the original code to get the directory

* setup project on ci

* removed unneeded code

* removed useless code
2023-04-12 11:06:45 +00:00
Mauro 8403b07874 Fixing locheck tool (#788)
* fixing locheck

* fixing locheck tool

* Revert "fixing locheck tool"

This reverts commit 9bb3dbcd70d1ecbc62b4289623b5f9e584929997.

* locheck install

* using the original code to get the directory

* adding swiftgen to download strings

* setup project on ci

* added Strings.swift to the path

* adding String.swift
2023-04-12 10:03:11 +00:00
Mauro 8a56649289 Translations workflow and tools (#768)
* Translations workflow and tools

* improved the name of the workflow

* need this commit to trigger the workflow for the first time

* swift tools can now run on CI

* only strings and stringsdict will be committed

* fixed a workflow issue

* starting the workflow to save it

* fixing downgrade issues

* fixing URL usage

* install localazy

* fixing add-paths typo

* downloaded strings

* removing on push trigger

* Update Tools/Sources/DownloadTranslations.swift

Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>

* Added locheck for string verification

* code formatting improvement

* Update Tools/Sources/Locheck.swift

Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>

* pr suggestion

---------

Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
2023-04-05 19:36:51 +02:00