a push to a PR occurs • Runs Unit Tests • Runs UI Tests • Uses the Debug con fi guration of the App • Performs code style checks PR pipeline 🚀 • Manually triggered • Bumps version • Archives the app • Uploads to the App Store Release pipeline 👨💻 • Triggered by every push to main • Runs Unit Tests • Runs UI Tests • Uses the Debug con fi guration of the App Main pipeline
in the CI is not supported App was archived with Xcode 14 beta 2 A stable version of Xcode needs to be installed The beta version was in the CI for testing.
check processes that don’t happen often. Scheduled workflows can be very helpful Triggered at specific times using cron expressions A good example are nightly CI runs Certain workflows are time consuming and can cause disruption Source: https://crontab.guru/#0_0_*_*_*
Main pipeline Release pipeline 🌝 Nightly pipeline • Scheduled to run every night • Can be achieved with most CI providers • Archives the app • Validates the binary with App Store Connect.
number of modules in the app. • Show the amount of legacy vs new code (swift vs obj-c?) Collect metrics 🧪 • End 2 End tests • Accessibility testing • Any other ‘specialised’ long-running test plans. Run expensive tests 🧽 • Track the size of the IPA • Vulnerability checks • Unused code analysis - Feature Flags? • Create dependency reports Sanity checks
in processes which are very important but don’t get run very often (e.g. release pipeline). 2⃣ Performing useful tasks that are time consuming with minimal disruption. 3⃣ Automating repetitive tasks which always happen at a certain time (once a week, twice a month, once a day, etc.)