Skip to main content
Version: v4 (current)

AWS Examples

Complete workflow examples for running Unity builds on AWS Fargate via Orchestrator.

Minimal AWS Build​

The simplest AWS workflow. Uses default CPU and memory.

name: Build with Orchestrator (AWS)

on:
push:
branches: [main]

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
lfs: true

- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: eu-west-2

- uses: game-ci/orchestrator@v1.0.0
with:
providerStrategy: aws
targetPlatform: StandaloneLinux64
gitPrivateToken: ${{ secrets.GITHUB_TOKEN }}

Multi-Platform Matrix Build​

Build for multiple platforms in parallel. Each platform runs as a separate Fargate task.

name: Orchestrator  -  AWS Multi-Platform

on:
push:
branches: [main, develop]
pull_request:
branches: [main]

jobs:
build:
name: Build (${{ matrix.targetPlatform }})
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
targetPlatform:
- StandaloneLinux64
- StandaloneWindows64
- StandaloneOSX
- iOS
- Android
- WebGL
steps:
- uses: actions/checkout@v4
with:
lfs: true

- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: eu-west-2

- uses: game-ci/orchestrator@v1.0.0
id: build
with:
providerStrategy: aws
targetPlatform: ${{ matrix.targetPlatform }}
gitPrivateToken: ${{ secrets.GITHUB_TOKEN }}
unityVersion: 2022.3.0f1
containerCpu: 2048
containerMemory: 8192
containerHookFiles: aws-s3-upload-build
githubCheck: true

Custom Resources and S3 Artifacts​

Specify CPU/memory and export build artifacts to S3.

- uses: game-ci/orchestrator@v1.0.0
id: aws-build
with:
providerStrategy: aws
versioning: None
projectPath: path/to/your/project
unityVersion: 2022.3.0f1
targetPlatform: ${{ matrix.targetPlatform }}
gitPrivateToken: ${{ secrets.GITHUB_TOKEN }}
containerCpu: 2048
containerMemory: 8192
# Export builds to S3:
containerHookFiles: aws-s3-upload-build

Valid CPU/Memory Combinations​

AWS Fargate only accepts specific combinations (1024 = 1 vCPU, memory in MB):

CPU (containerCpu)Memory (containerMemory)
256 (0.25 vCPU)512, 1024, 2048
512 (0.5 vCPU)1024 – 4096
1024 (1 vCPU)2048 – 8192
2048 (2 vCPU)4096 – 16384
4096 (4 vCPU)8192 – 30720

Async Mode​

For long builds, use async mode so the GitHub Action returns immediately. Monitor via GitHub Checks.

- uses: game-ci/orchestrator@v1.0.0
with:
providerStrategy: aws
targetPlatform: StandaloneLinux64
gitPrivateToken: ${{ secrets.GITHUB_TOKEN }}
asyncOrchestrator: true
githubCheck: true

Retained Workspaces​

Keep the entire project cached between builds for dramatically faster rebuilds.

- uses: game-ci/orchestrator@v1.0.0
with:
providerStrategy: aws
targetPlatform: StandaloneLinux64
gitPrivateToken: ${{ secrets.GITHUB_TOKEN }}
maxRetainedWorkspaces: 3
containerCpu: 2048
containerMemory: 8192

S3 Upload + Steam Deploy​

Chain container hooks to export to S3 and deploy to Steam in one step.

- uses: game-ci/orchestrator@v1.0.0
with:
providerStrategy: aws
targetPlatform: StandaloneLinux64
gitPrivateToken: ${{ secrets.GITHUB_TOKEN }}
containerHookFiles: aws-s3-upload-build,steam-deploy-client
env:
STEAM_USERNAME: ${{ secrets.STEAM_USERNAME }}
STEAM_PASSWORD: ${{ secrets.STEAM_PASSWORD }}
STEAM_APPID: ${{ secrets.STEAM_APPID }}

Scheduled Garbage Collection​

Clean up stale CloudFormation stacks and Fargate tasks.

name: Orchestrator  -  Garbage Collect

on:
schedule:
- cron: '0 4 * * *' # Daily at 4 AM UTC

jobs:
cleanup:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: eu-west-2

- uses: game-ci/orchestrator@v1.0.0
with:
providerStrategy: aws
mode: garbage-collect
garbageMaxAge: 24
gitPrivateToken: ${{ secrets.GITHUB_TOKEN }}

CLI Usage​

Run AWS builds from the command line:

game-ci build \
--providerStrategy aws \
--projectPath /path/to/unity/project \
--targetPlatform StandaloneLinux64 \
--containerCpu 2048 \
--containerMemory 8192

List active AWS resources:

game-ci status --providerStrategy aws

Required Secrets​

SecretDescription
AWS_ACCESS_KEY_IDIAM access key with ECS, CloudFormation, S3, Kinesis, CloudWatch
AWS_SECRET_ACCESS_KEYIAM secret key

Next Steps​