Skip to main content
Version: v4 (current)

AWS

Architecture

Orchestrator creates and manages these AWS resources automatically:

  CloudFormation (base stack)
┌──────────────────────────────────────────────────┐
│ │
│ ┌────────────┐ ┌─────────────┐ │
│ │ ECS │ │ S3 │ │
│ │ Fargate │ │ Bucket │ │
│ │ (build │ │ (cache + │ │
│ │ tasks) │ │ artifacts) │ │
│ └────────────┘ └─────────────┘ │
│ │
│ ┌────────────┐ ┌─────────────┐ │
│ │ CloudWatch │───►│ Kinesis │──► Log stream │
│ │ Logs │ │ Stream │ to CI │
│ └────────────┘ └─────────────┘ │
│ │
└──────────────────────────────────────────────────┘

Requirements

  • An AWS account with permission to create resources (ECS, CloudFormation, S3, Kinesis, CloudWatch).
  • An IAM user or role with an access key and secret key.

AWS Credentials

Set the following as env variables in your workflow:

VariableDescription
AWS_ACCESS_KEY_IDIAM access key ID.
AWS_SECRET_ACCESS_KEYIAM secret access key.
AWS_DEFAULT_REGIONAWS region matching your base stack (e.g. eu-west-2).

If you're using GitHub Actions, configure credentials with:

- 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

CPU and Memory

AWS Fargate only accepts specific CPU/memory combinations. Values use the format 1024 = 1 vCPU or 1 GB. Do not include the vCPU or GB suffix.

See the full list: AWS Fargate Task Definitions

Common combinations:

CPU (containerCpu)Memory (containerMemory)
256 (0.25 vCPU)512, 1024, 2048
512 (0.5 vCPU)10244096
1024 (1 vCPU)20488192
2048 (2 vCPU)409616384
4096 (4 vCPU)819230720

Example Workflow

- uses: game-ci/unity-builder@v4
id: aws-fargate-unity-build
with:
providerStrategy: aws
versioning: None
projectPath: path/to/your/project
unityVersion: 2022.3.0f1
targetPlatform: ${{ matrix.targetPlatform }}
gitPrivateToken: ${{ secrets.GITHUB_TOKEN }}
containerCpu: 1024
containerMemory: 4096
# Export builds to S3:
containerHookFiles: aws-s3-upload-build

See Container Hooks for more on containerHookFiles.

A full workflow example is available in the builder source: orchestrator-pipeline.yml.

AWS Parameters

For the full list of AWS-specific parameters (awsStackName, endpoint overrides, etc.), see the API Reference — AWS section.