| name | ha-ios-workflow-ci |
| description | The end-to-end change workflow, TestFlight feature gating, and CI gates. Use when preparing a change for commit, understanding the order of lint/autocorrect/test steps, gating a feature behind TestFlight with `Current.isTestFlight`, or knowing what GitHub Actions checks before a PR can merge. |
Workflow & Continuous Integration
Workflow Summary
- Install dependencies:
bundle install (SPM dependencies resolve automatically in Xcode)
- Make your changes in the appropriate
Sources/ directory
- Add strings to
en.lproj/Localizable.strings if needed (SwiftGen generates accessors on build; see the ha-ios-localization skill)
- Run autocorrect:
bundle exec fastlane autocorrect (see the ha-ios-code-style skill)
- Run tests:
bundle exec fastlane test (see the ha-ios-testing skill)
- Commit your changes
TestFlight-Gated Features
A feature that is not ready for every user yet may ship to beta testers only. Two rules govern this, and both are mandatory.
1. Current.isTestFlight is the only gate
case .remindersSync:
return Current.isTestFlight
- Gate on
Current.isTestFlight (defined in Sources/Shared/Environment/Environment.swift) and nothing else. Do not invent a feature-flag type, add a build setting, an branch, an key, or a hidden setting to accomplish the same thing.