Automation checks help us keep our code clean and consistent, and our release pipeline ready to run at any given moment in time.

We currently have a number of checks for different purposes that help us to deliver software faster, and to take external contributions and treat them the same as if they were provided by one of our own engineers.

The below outlines each of our status checks.

Run Danger Danger helps us to find issues that lie outside of building and testing processes. This includes tasks such as checking that the PR is well formatted, has the right reviewers assigned, has a title with a conventional commit prefix, and so on.
Pod linting We currently use CocoaPods as our primary package manager. This check ensures that the pod would be deployable to the CocoaPods master repo after merging.
Build for SPM We also support Swift Package Manager as an integration route. This builds our SPM-integrated example app to ensure that the route is functional.
SonarCloud Checks for a variety of linting issues
Build & Upload to Appetize This is our “standard” build check. It builds our example app, runs unit and integration tests, and uploads a build to Appetize. Note: Appetize builds are not accessible external to Primer.