Commit Graph

129 Commits

Author SHA1 Message Date
joel.poyet 8e81ebbd77 Add a fastlane pipeline that releases HealthChat to TestFlight (#2)
element-x-ios had no release machinery at all: no fastlane, no Gemfile, and none of
its workflows built or uploaded anything. Upstream ships via Xcode Cloud, which
needs Element's private Enterprise submodule and so is unavailable here, while the
legacy element-ios fork already proves a fastlane pipeline against the same Apple
team, certificate and App Store Connect key.

Tagging healthchat-v<version> now builds a signed App Store IPA on the org's Mac
Studio and uploads it to TestFlight. Release notes come from a new
HEALTHCHAT_CHANGES.md, because upstream's own tooling owns CHANGES.md.

The lane deliberately does not pin Xcode. The runner carries a single globally
selected version, and naming an absent one does not fail fast — it sends xcodes
into a multi-GB authenticated download that no CI secret can satisfy. Each run logs
xcodebuild -version instead, which is the only record of what compiled a build.

Everything here is fork-owned, since upstream has no fastlane directory, so none of
it can conflict on rebase.
2026-10-19 09:17:29 +02:00
Stefan Ceriu bce9119bc3 Replace the last of the fastlane lanes with swift tooling
- move more sharable code to CI static methods
- merge `release_to_github` and `prepare_next_release` into one single command as they had dependencies on each other
- remove all traces of ruby and fastlane
2026-03-11 10:06:44 +02:00
Stefan Ceriu e23959a201 Convert more fastlane tools to swift commands (#5163)
* Upload dSYMs to sentry using swift and the sentry-cli instead of fastlane.

* Replace the fastlane `config_production` lane with a swift tools `ConfigureProduction` command.

* Replace Zsh with CI.run in the new ConfigureNightly command

* Replace the fastlane `tag_nightly` lane with a swift tools `TagNightly` command.

* Print out all the commands going through CI.Run and their arguments

* Address PR comments
2026-03-05 16:14:09 +02:00
Stefan Ceriu 6dd9f3f5e9 Replace the enterprise unit tests workflow with the new swift ones 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
Stefan Ceriu d3cefb8e0b Add swift command for running UI tests 2026-03-02 12:34:58 +02:00
Stefan Ceriu ef4a78ce53 Add swift command for running accessibility tests 2026-03-02 12:34:58 +02:00
Stefan Ceriu 0fc0e2880b Add a separate tools command for building nightly and remove the old fastlane one. 2026-02-26 18:43:49 +02:00
Stefan Ceriu 0d5f0b1593 Call the pipeline from within swift tools instead of through fastlane. 2026-02-26 18:43:49 +02:00
Stefan Ceriu b4eedfef59 Fix the upload_dsyms_to_sentry lane after plugin update. 2026-02-16 12:11:25 +02:00
Mauro 0e40cc7008 Fix A11y tests (#5104)
* replace NavigationStack with ElementNavigationStack to allow the content to be rendered without a NavigationStack in a11y tests

* fix a11y tests

* update xcodeproject

* swiftformat fix

* use iOS 26.1 for CI

* use a wrapper to solve the issue for a11y tests

* ElementNavigationStack only uses the trick in DEBUG mode, and added a swiftlint rule to prevent the usage of NavigationStack
2026-02-13 16:45:58 +01:00
Stefan Ceriu 15126873f7 Use the quiet argument on Fastlane's xcbeautify output formatter
This should remove most of the noise and make it easier to spot issues.
2025-12-16 18:36:19 +02:00
Stefan Ceriu 65dd900a5e Have fastlane's xcbeautify use a special github actions formatter and reporter. 2025-12-16 12:16:53 +02:00
Doug f6d0b2c096 Use Xcode 26.1 on GitHub runners. 2025-11-27 16:43:48 +00:00
Mauro b725100cc1 Run CI with Xcode 26.1 RC (#4672)
* Use Xcode 26.1 RC on CI

* regenerated previews with 26.1

* ui tests

* fix

* fix some iPad tests rendering

* remove useless fastlane line

---------

Co-authored-by: Doug <douglase@element.io>
2025-11-17 12:30:57 +01:00
Doug ad7ae3641d Don't assert specific devices for accessibility tests and use iOS 18 again. (#4741)
* Don't assert specific devices for accessibility tests.

It's not as critical as UI/Preview tests as nothing is snapshotted.

* Extend the timeout for accessibility tests.

They're slow 😅

* Drop back to iOS 18.5 for accessibility tests (for now).
2025-11-13 10:34:36 +00:00
Doug 010500a083 Stop repeating the simulator version throughout the Fastfile. (#4677) 2025-10-31 10:51:40 +00:00
Doug 4273044146 Use the new Icon Composer .icon format. (#4612) 2025-10-10 20:00:03 +01:00
Stefan Ceriu 6c4b4fce00 Have Fastlane use the latest available 26.0.x Xcode version
This comes as a potential fix for Xcode Cloud where Xcode 26.0 is no longer available and when switching the workflow to 26.0.1 it fails with `[!] Cannot find an installed Xcode satisfying '26'`
2025-10-04 08:59:32 +03:00
Stefan Ceriu 30256f11a1 Create the SE 3rd gen simulator if necessary 2025-09-26 17:20:41 +03:00
Stefan Ceriu f8ba973db2 Everybody do the Xcode 🎶 2025-09-26 17:20:41 +03:00
Mauro 27f078e83c Accessibiliy Tests part 2 (#4325)
* running all the tests

* setting up CI

* fixed the workflow

* workflow on pull request, just to make it appear

* removed the test to run var

* fix archived tests name

* improved the tests, by filtering out some noise

* pr suggestions and added an improvement to the filtering

* improved the interrupt handler

* improved the UI interruption monitor handler

* some more refinement to handle the interruptor + false positive for non human readable labels

* reverted wrong commit

* ready for review, removed the on pull request check

* pr suggestions
2025-07-18 10:33:45 +02:00
Doug 1c2d77217f Update the project for Xcode 16.4 (#4277) 2025-07-02 15:13:52 +01:00
Stefan Ceriu 182eee2867 Update the Enterprise submodule and make use of the newly added secrets configuration mechanism 2025-05-27 18:21:11 +03:00
Stefan Ceriu e795d07477 Stop generating the fastlane readme and delete the existing one 2025-05-12 15:07:46 +03:00
Stefan Ceriu 06e7919b56 Remove support for building Alpha/PR (adhoc) builds.
We've haven't really been using these and they're proving to be quite a chore to keep running.
Also, we recently needed an external demo build and we chose to go with custom build on top of testflight instead.

As such it's been decided that we can go ahead and remove them.
2025-05-12 15:07:46 +03:00
Doug d47c802fec Fix the UI tests. (#4085)
* Compile errors 😬

* Update server selection snapshots.

The default footer string has changed.

* Remove the TemplateScreen UI tests.

We use preview tests for snapshots now, UI tests are for flow coordinators.

* Add the same looping on the OIDC UI test (but disable the test in the end).

* Run UI tests separately for iPhone and iPad.

GitHub runners don't seem to have enough memory to handle 2 simulators at once.
2025-05-02 12:47:31 +01:00
Mauro 85a7172986 Xcode16.3 support (#4029)
* Xcode16.3 support + updated unit and preview test
2025-04-16 19:12:31 +02:00
Doug 3547777a02 Vendor our StaticCode pkl package inside the project. (#3993)
* Vendor our StaticCode pkl package inside the project.

* Update the Enterprise submodule.
2025-04-08 11:23:54 +01:00
Doug 6a8f35db9c Make the secrets optional. (#3966) 2025-04-01 16:14:05 +01:00
Doug 55f3bf8b62 Fix rebase take II. 2025-03-21 10:11:56 +00:00
Doug 8cb5330ee2 Discard any changes before rebasing main. (#3927) 2025-03-20 18:05:43 +00:00
Doug ae1c35a63b Prefix our release tags with release/ (#3894) 2025-03-12 16:47:01 +00:00
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