Automate Unity Android builds using GitHub Actions and Cake. Save time, avoid repetitive setup, and focus on game development.
🔹 v1.0.0 — game-ci (Unity Personal License)
Uses game-ci/unity-builder@v4. Works with Unity Personal.
- Import 
ci-github-action-v1.0.0.unitypackageinto your project. - Configure 
Assets/Plugins/CI/CIConfig.asset. - Set the following GitHub secrets:
 
| Secret Name | Description | 
|---|---|
UNITY_EMAIL | 
Unity account email | 
UNITY_PASSWORD | 
Unity account password | 
UNITY_LICENSE | 
Content of base64 .ulf license | 
- 
Open Unity Hub on your local machine.
 - 
Go to
Preferences → Licenses → Manual Activation. - 
Follow the instructions and locate the
.ulffile after activation:- Windows: 
C:\ProgramData\Unity\Unity_lic.ulf - macOS: 
/Library/Application Support/Unity/Unity_lic.ulf 
 - Windows: 
 - 
Open the file in a text editor and copy its full content.
 - 
Add it as
UNITY_LICENSEin your GitHub repository secrets. 
✅ Recommended Runner: game-ci/unity-builder@v4
🔹 v2.0.0 — Custom Docker Image (Unity Pro License Only)
Uses your own Docker image with pre-installed Unity Editor.
- Import 
ci-github-action-v2.0.0.unitypackageinto the project. - Configure 
CIConfig.assetas usual. - Use this container section in your 
ymlfile: 
container:
  image: ghcr.io/sinlessdevil/unity-ci-image:2023.2.1f1
  credentials:
    username: ${{ secrets.USERNAME }}
    password: ${{ secrets.CR_PAT }}- Manually activate Unity Pro license inside Docker.
 - Unity Personal WILL NOT WORK in headless CI — it requires a display.
 
| Secret Name | Description | 
|---|---|
USERNAME | 
GitHub username (for Docker registry access) | 
CR_PAT | 
GitHub personal access token | 
UNITY_EMAIL | 
Optional, for in-container activation | 
UNITY_PASSWORD | 
Optional, for in-container activation | 
- 
This file does not build Unity itself.
 - 
Your method should be triggered via
Plugins.CI.Editor.Builder.* - 
The script is responsible for:
- Parsing logs
 - Setting app version
 - Tracking Git SHA / commits
 - Optional test/log analysis
 
 
- Automatically runs when commit message contains 
#build 
- Unity Personal builds will fail inside Docker without GUI (headless limitation).
 - If using a custom Docker image, you must activate Unity Pro license manually inside it.
 - Unity activation can silently fail — always check 
/root/activation.log. - Make sure secrets are properly set, especially 
USERNAME,CR_PAT. - GitHub caches Library folder by default. Invalidation relies on hashing 
Assets,Packages,ProjectSettings. 
🔹 v3.0.0 — Local Builds via Unity Editor
Adds support for building directly inside Unity Editor (no Docker/GitHub Actions required).
Import ci-github-action-v3.0.0.unitypackage into your project.
Call any of the following methods from Plugins.CI.Editor.Builder.cs:
Builder.BuildAndroidAPK_Dev(); // Fast APK build
Builder.BuildAab();            // Release AAB build- Runs build directly from Editor (ideal for local/dev use)
 - Automatically skips 
[Ignore]d tests - Suppresses Unity splash screens & dialogs (headless-friendly)
 - Supports silent builds, log parsing, versioning