Unity Build Pipeline: iOS Games on AWS Cloud
Publication date: November 24, 2021 (Diagram history)
This architecture shows how to build Unity-based games for iOS in the AWS Cloud with Jenkins by using a two-stage pipeline on Amazon EC2 Spot Instances and Amazon EC2 Mac Instances.
Unity Build Pipeline: iOS Games on AWS Cloud
-
Source code is stored in an AWS CodeCommit repository. Jenkins pulls it on a build start.
-
A Unity container image is pulled from Amazon Elastic Container Registry and deployed by the Jenkins Docker agent on a worker node.
-
The first build stage runs on Amazon EC2 Spot Instances. It generates an Xcode project from Unity source code. These instances are placed into an Auto Scaling group for scalability and redundancy.
-
A Unity Build Server vends floating licenses to workers in the Auto Scaling group.
-
The Unity license binds to the Amazon EC2 instance's Ethernet interface MAC address. An elastic network interface preserves the MAC address if the instance is recreated.
-
The resulting Xcode project transfers to a Jenkins worker on an Amazon EC2 Mac Instance. This worker finalizes and signs the build and exports an .ipa file.
-
Certificates, private keys, and provisioning profiles are stored in AWS Secrets Manager. The Mac dynamically pulls them during a build.
-
An .ipa archive file is exported as a Jenkins artifact and stored in an Amazon S3 bucket.
Further reading
For additional information, refer to
Diagram history
To be notified about updates to this reference architecture diagram, subscribe to the RSS feed.
| Change | Description | Date |
|---|---|---|
Initial publication | Reference architecture diagram first published. | November 24, 2021 |
Note
To subscribe to RSS updates, you must have an RSS plugin enabled for the browser you are using.