Skip to main content
Version: v4 (current)

Azure ACI (Experimental)

Run Unity builds as Azure Container Instances - serverless containers with configurable storage backends.

Experimental

This provider is experimental. APIs and behavior may change between releases.

Prerequisites

  • Azure CLI installed and authenticated (az login or service principal)
  • A resource group (auto-created if it doesn't exist)
  • Contributor role on the resource group

Storage Types

Set azureStorageType to control how the build accesses large files.

TypeHow it worksBest forSize limit
azure-filesMounts an Azure File Share via SMBGeneral artifact storage100 TiB
blob-copyCopies artifacts in/out via az storage blobSimple upload/downloadUnlimited
azure-files-nfsMounts an Azure File Share via NFS 4.1Unity Library (small random reads)100 TiB
in-memoryemptyDir volume (tmpfs)Scratch/temp during buildsContainer memory

When to use each type

  • azure-files (default) - Simplest persistent option. Works out of the box - auto-creates the storage account and file share if they don't exist. SMB has some overhead from opportunistic locking but is reliable for most use cases.

  • blob-copy - Avoids mount overhead entirely. Copies everything before the build starts and uploads after it finishes. Good when you only need artifact upload/download.

  • azure-files-nfs - Eliminates SMB lock overhead for better random I/O performance with Unity Library files (thousands of small files). Requires Premium FileStorage (auto-created) and VNet integration via azureSubnetId.

  • in-memory - Fastest option (RAM-backed). Data is lost when the container stops. Size is limited by the container's memory allocation. Use for temporary build artifacts.

Inputs

InputDefaultDescription
azureResourceGroup$AZURE_RESOURCE_GROUPResource group name
azureLocationeastusAzure region
azureStorageTypeazure-filesStorage backend (see above)
azureStorageAccount$AZURE_STORAGE_ACCOUNTStorage account name
azureBlobContainerunity-buildsBlob container (for blob-copy)
azureFileShareNameunity-buildsFile share name (for azure-files, azure-files-nfs)
azureSubscriptionId$AZURE_SUBSCRIPTION_IDSubscription ID
azureCpu4CPU cores (1–16)
azureMemoryGb16Memory in GB (1–16)
azureDiskSizeGb100File share quota in GB
azureSubnetId-Subnet ID for VNet (required for azure-files-nfs)

Examples

Azure Files - SMB mount (default)

- uses: game-ci/unity-builder@v4
with:
providerStrategy: azure-aci
azureResourceGroup: my-rg
azureStorageAccount: myunitybuilds
targetPlatform: StandaloneLinux64

NFS - better POSIX performance

- uses: game-ci/unity-builder@v4
with:
providerStrategy: azure-aci
azureResourceGroup: my-rg
azureStorageType: azure-files-nfs
azureStorageAccount: myunitybuilds
azureSubnetId: /subscriptions/.../subnets/default
targetPlatform: StandaloneLinux64

Blob copy - simple artifact upload/download

- uses: game-ci/unity-builder@v4
with:
providerStrategy: azure-aci
azureResourceGroup: my-rg
azureStorageType: blob-copy
azureStorageAccount: myunitybuilds
azureBlobContainer: my-builds
targetPlatform: StandaloneLinux64