Introduction
Concept - What Does Orchestrator Do
Orchestrator enables you to run, build and test (Unity) projects in the cloud. You can start jobs from the command line, the "Workbench" GUI in the Unity Editor or from GitHub Actions.
Orchestrator will automatically provision an environment at a Cloud Provider such as GCP and AWS. It will then send the project to be built and/or tested depending on your workflow configuration.
Orchestrator is especially useful for game development because it supports large projects. Orchestrator provides first class support for the Unity game engine.
Orchestrator uses git to track and syncronize your projects and uses native cloud services such as AWS Fargate and Kubernetes to run your jobs. Other version control systems are not actively supported.
Why Orchestrator?
- Orchestrator is flexible and elastic
- You can balance your use of high-performance and cost saving modes. Configurable cost/speed effeciency
- Works great for projects of almost any size, from AAA projects and assets to micro projects
- Extended configuration options. More control over disk size, memory and CPU
- Easily scale all job resources as your project grows e.g storage, CPU and memory
- Scale fully on demand from zero (not in use) to many concurrent jobs. Benefits from "pay-for-what-you-use" cloud billing models. We have made an effort to make sure that it costs you nothing (aside from artifact and cache storage) while there are no builds running (no guarantees)
- Easy setup and configuration
- Run custom jobs and extend the system for any workload
Why not orchestrator?
- Your project is small in size. Below 5GB Orchestrator should not be needed.
- You already have dedicated servers running you can use.
Although the speed of a CI pipelines is an important metric to consider, there are real challenges for game development pipelines.
This solution prefers convenience, ease of use, scalability, throughput and flexibility.
Faster solutions exist, but would all involve self-hosted hardware with an immediate local cache of the large project files and working directory and a dedicated server.
Orchestrator Release Status
Orchestrator is in "active development" ⚠️🔨
Orchestrator overall release status: preview This means some APIs may change, features are still
being added but the minimum feature set works and is stable.
Release Stages: experimental ➡️ preview ➡️ full release
You must use a provider with Orchestrator, each provider's release status is described below. This indicates the stability and support for orchestrator features and workflows.
Supported Orchestrator Platforms
| Cloud Provider Platform | Release Status |
| ----------------------- | ------------------ |
| Kubernetes | ✔️ preview release |
| AWS | ✔️ full release |
| GCP | ⚠ Considered |
| Azure | ⚠ Considered |
Note for Kubernetes support: Usually the cluster needs to be up and running at all times, as starting up a cluster is slow. Use Google Cloud's Kubernetes Autopilot you can scale down to the free tier automatically while not in use. Kubernetes support currently requires cloud storage, only S3 support is built-in.
| Git Platform | Release Status |
| --------------------- | ------------------ |
| GitHub | ✔️ full release |
| GitLab | ✔️ preview release |
| Command Line | ✔️ preview release |
| Any Git repository | ✔️ preview release |
| Any Git automation/Ci | ✔️ preview release |
External Links
Orchestrator Releases
Game CI Releases - GitHub Packaged and released with game-ci's unity-builder module.
Open Incoming Pull Requests
💬Suggestions and 🐛Bugs (GitHub Issues):
Community
Share your feedback with us!