96 Commits

Author SHA1 Message Date
Mauro Romito
9c8404a3cb fastlane: rebase main with develop after a release
moved the git fetch into the setup of xcode cloud

fix
2025-03-06 17:05:22 +01:00
Doug
6ded867bcc
Configure diagnostics (and MapLibre) using Pkl. (#3820)
* Bump the version for the next release.

* Ignore all generated sources.

* Use Pkl+XcodeGen to inject secrets instead of the project.

* Inject the PostHog/Sentry/Rageshake configuration from the environment.

* Fix bad unicode.

* Fix unit tests.
2025-02-24 18:36:08 +00:00
Doug
b71c93dfaa Update Enterprise submodule.
Include pkl in the dependencies.
2025-02-17 12:01:08 +00:00
Doug
d96304b3bb Update the fastlane README. 2025-02-17 12:01:08 +00:00
Mauro
5cffad937e
Fastlane calendar versioning check and increase (#3721)
* update fastfile

* original comment

---------

Co-authored-by: Element CI <ci@element.io>
2025-01-31 13:34:25 +01:00
Stefan Ceriu
55e399aaf7 Replace ImageMagick with a custom tool written in swift. 2025-01-21 16:25:29 +02:00
Stefan Ceriu
1de8c1f4a2 Setup an app variants folder and move the nightly and alpha build configs to it. 2025-01-21 16:25:29 +02:00
Doug
082b4b260c
Include missing gems until Fastlane is updated for Ruby 3.4 (#3663) 2025-01-06 16:17:12 +00:00
Stefan Ceriu
5aadf4e65b
UI test fixes (#3515)
* More UI test fixes

* Update all UITest snapshots.

* Wait for reset waiting indicator to be removed before snapshotting the encryption reset screen
2024-11-14 16:44:36 +02:00
Doug
2b153306dd
Update the project to use Xcode 16.1 (#3505) 2024-11-12 12:24:08 +00:00
Stefan Ceriu
5ead649489 Fastlane fails resetting the right simulator, use device instead of destination. 2024-11-07 11:36:44 +02: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
6faa26eade
Add detection for latest devices. (#3327)
* Update various packages.
Notable changes:
- DeviceKit now detects iPad Pro (M4), iPad Air (M2) and iPhones 16.
- KZFileWatchers isn't updated but now has a tag to pin to.

* Try using a raw destination for tests.
To fix an issue where CI isn't finding iPhone 16 when it's clearly listed by simctl.
2024-09-25 10:01:21 +01:00
Doug
7bfd73de5f Update Unit tests for Xcode 16. 2024-09-23 16:25:49 +01:00
Doug
7b42df84ae Update Integration tests for Xcode 16. 2024-09-23 16:25:49 +01:00
Doug
6e83ecb290 Don't reset the simulator contents on GitHub. 2024-09-23 16:25:49 +01:00
Doug
6818be1afc Update UI tests for Xcode 16. 2024-09-23 16:25:49 +01:00
Stefan Ceriu
2f6fea29f3
Replace Prefire with a very similar but simpler and more direct approach (#3232)
* Replace Prefire with a very similar but simpler and more direct approach

* Move PreviewTest snapshots to their new location (snapshotting default, mirrors UITests)

* Update acknowledgements

* Switch snapshot configuration extensions to a custom version

* Exclude snapshots from the PreviewTests target

* Fix acknowledgements

* Rename snapshotting preference keys

* Remove `skipPackagePluginValidation`
2024-09-09 15:07:41 +03:00
Doug
50c2b593e7 Put a space between the version and build numbers. 2024-08-06 21:29:55 +03:00
Doug
cdd763efd4
Add a certificate validator hook. (#3069)
* Add a certificate validator hook.

* General tidy up of AppHooks.

* Don't worry about the generic call links.
2024-07-19 17:05:54 +01:00
Doug
c92c6a28ae
Upgrade the project to use Xcode 15.4 (#3027)
* Update snapshots for Xcode 15.4

* Update CI.

* Fix crashing UI test.

* Fix compile error in Integration Tests.

* Try putting UI tests on GH runners again.
2024-07-11 17:38:32 +01:00
Doug
1178561853
Setup unit tests for Enterprise. (#2984)
* Fix Analytics on Enterprise.
2024-07-01 12:34:47 +01:00
Doug
3cc4145a4c
Use XcodeGen files for app variants and setup Enterprise submodule. (#2976)
- Create an app.yml with the base app variant.
- Override app.yml contents on Nightly/PR builds.
- Add AppHooks mechanism.
- Add Enterprise submodule.
- Conditionally import Enterprise/fastlane/Fastfile if available.
2024-06-27 18:18:17 +01:00
Doug
82823c94ce
Replace Towncrier with GitHub releases + labels. (#2966)
* Set up GitHub generated release notes.

* Remove Towncrier from the release script.

* Add changelog failures for Labels with Danger and stop requesting a changelog file.

* Update changelog documentation.
2024-06-25 11:07:01 +00:00
Doug
9282088891 Remove OTLP support. 2024-05-08 11:33:37 +01:00
Stefan Ceriu
4e828e6f5c Remove include_simulator_logs from the integration tests. 2024-03-28 10:34:12 +02:00
Stefan Ceriu
98af0ae169
UI test shenanigans (#2611)
* Hardcode Xcode 15.2 as there are multiple versions available on the performance runner

* Remove the derived data caching step as it's not necessary on the performance runner.
2024-03-27 14:10:20 +02:00
Stefan Ceriu
92eaa7075a
UI test cleanup (#2598)
* Stop running the UI tests on the double localized pseudolanguage

* Fix UI tests signalling comms problem because the json key ordering wasn't defined and the messages wouldn't match.

* Remove UI tests that are now the same as preview tests (i.e. non flow based, only screen based), fixed the rest so they run on iOS 17.2, the iPhone 15 and iPad 10th gen simulators.

* Remove unnecessary gitignore instructions, change UI test snapshot naming convention to be more similar to the unit test ones

* Enable derived data and spm checkout caching for UI tests

* Switch UI tests back to the perf-only runner, moved the integration tests to the iPhone 15 Pro simulator.

* Address PR comments
2024-03-25 17:34:11 +02:00
Stefan Ceriu
1d950fa803 Switch back to iOS 17.2 and the iPhone 15 and iPad 10th generation 2024-03-25 11:02:06 +02:00
Stefan Ceriu
83f5ae9192
Prefire multiple devices (#2543)
* Update Prefire, setup multiple snapshot devices and languages
Squashed commits:
[28cb4ae6d] Switch to macos-14, iOS 17 and the iPhone 15 simulator
[080fc82cb] Update snapshots
[c874ca9c7] Bump Compound and Prefire, reduce perceptual precission to 0.98
[a59b8a54c] Update snapshots after adding iPad and pseudolanguage snapshotting
[f30cc3277] Setup multi-language snapshotting
[aeb11c7e7] Update prefire template, setup multiple snapshot devices

* Update ruby dependencies and fastlane plugins

* Bump Compound, switch back to the original prefire - version 2.0.4

* Remove preview test simulator version specifiers
2024-03-12 13:08:54 +02:00
Doug
5f0c782ce2
Use xcresultparser in all workflows. (#2510)
* Fix integration tests.
2024-02-28 18:01:20 +00:00
Doug
a3b3aa8517
Move PreviewTests into their own scheme. (#2492)
* Use xcresultparser for coverage as there are 2 schemes now.
2024-02-22 15:13:52 +00: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
12e8ffaf87 Show the build number on the nightly app icons 2023-11-27 10:55:38 +02:00
Doug
d03c97a02a
Switch to Xcode 15 (with the iOS 16.4 Simulator for tests still) (#2113)
* Use Xcode 15 in GitHub actions.

Use iOS 16.4 simulators from Xcode 14 as iOS 17.0.1 simulators are **super** slow.

* Fix failing preview snapshots.

Snapshot fix.

* Improve setup

* Regenerate snapshots that had a conflict.

---------

Co-authored-by: Alfonso Grillo <alfogrillo@gmail.com>
2023-11-21 16:25:18 +00:00
Stefan Ceriu
56879caae6 Add back automatic unit test retrying 2023-11-16 17:23:13 +02:00
Doug
e42977a7b0 Remove smudging workarounds. 2023-10-16 12:55:05 +01:00
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

lfs

custom stencil

new test file

deleting

* 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 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