A developer initiates a build/test activity in AWS CodePipeline by pushing a code change to AWS CodeCommit. Automate Building and Testing of iOS Apps using Jenkins, Amazon EC2 Mac Instance, and AWS Device Farm. AWS Cloud AWS CodePipeline 3 Developer 1 Git Push AWS CodeCommit 2 Jenkins EC2 Mac with Jenkins 4 Put Build Artifact 7 Manager Reviewed for technical accuracy November 23, 2021 5 AWS Device Farm Amazon S3 Managed by AWS CodePipeline 6 Get Build Artifact AWS Reference Architecture 2 3 4 5 6 7 CodePipeline detects the change in CodeCommit and creates a job for Jenkins. Jenkins on Amazon EC2 Mac uses the CodePipeline plugin to poll CodePipeline, downloads the source, and triggers the build project. Amazon EC2 Mac instance builds the artifacts (as .ipa files) and CodePipeline plugin for Jenkins compresses and uploads the build artifacts to CodePipelines via Amazon S3 bucket. CodePipeline executes the test stage of pipeline on AWS Device Farm for testing the build artifacts (.ipa files) on multiple real devices. Device Farm automatically fetches the build artifacts from the Amazon S3 bucket, runs the test cases, and records the results. Device Farm makes the test results, logs, and recording available for review through the Device Farm conso