iOS App with CocoaPods Test Automation with GitHub Actions CI
If you write tests for your app at some point you will want to run them in an automated way to increase the effectiveness and ease of use of your tests. When already hosting your project on GitHub, then GitHub Actions is the easiest way to add CI (continuous integration) to your app project.
GitHub Actions workflow file (iOS CI)
Triggers
The workflow is triggered for each commit to the main
branch and also for each PR (Pull request) to main
. It can be changed to your liking.
Triggers for github
Caching
To speed of the workflow is added especially when using Cocoapods this help a lot. The key
specifies which cache to look for. When using the hashed Podfile.lock
file the cache is used from another build with exactly the same Podfile.lock
file. The restore-key
is used as an alternative if an exact key match couldn't be found
CocoaPod Install
This step is only needed when using CocoaPods when using SPM (Swift Package Manager) this step can be omitted.
Build
The build step is no requirement for the test step to work but I always like to see if the Release
configuration of the app even builds in the neutral environment of the build server. This way can be ensured that there a no dependencies of the project that weren't pushed to the repository.
Test
The actual test step running the tests. It is important to specify -workspace
attribute with your YourAppName.xcworkspace
(this is only needed when using CocoaPods). Also specify the scheme to be run with the -scheme
attribute. GitHub Actions unfortunately only supports simulators so that is why only the simulators are targeted.
Special Mention
This script was developed for the XPO App. Go check out the app.