-
Notifications
You must be signed in to change notification settings - Fork 8
Setup
Astrid Avalin Soerensen edited this page May 9, 2025
·
11 revisions
This page explains how to set up your Unity-CI-Templates environment, configure required secrets, and control pipeline variables.
You must add these under your repository:
GitHub → Settings → Secrets → Actions
| Secret Name | Description |
|---|---|
UNITY_LICENSE |
Base64-encoded Unity license file or .ulf string |
UNITY_EMAIL |
Unity account email address |
UNITY_PASSWORD |
Unity account password |
CICD_PAT |
GitHub Personal Access Token for workflow dispatch |
📖 See detailed setup for each secret:
Required Secrets
Depending on your deploy targets, you may also need:
| Secret Name | Purpose |
|---|---|
SLACK_WEBHOOK |
Slack webhook URL for notifications |
DISCORD_WEBHOOK |
Discord webhook URL for notifications |
ITCH_USERNAME |
itch.io username for Butler uploads |
ITCH_PROJECT |
itch.io project identifier |
FIREBASE_TOKEN |
Firebase CLI authentication token |
AWS_ACCESS_KEY_ID |
AWS key for S3 deploy |
AWS_SECRET_ACCESS_KEY |
AWS secret for S3 deploy |
| (and others — see Deployment Guide) |
The pipeline resolves parameters from three layers (highest → lowest priority):
| Layer | Description |
|---|---|
| 🥇 Workflow Dispatch Inputs | Passed when manually running workflows via the GitHub UI or CLI |
| 🥈 Repository Variables | Set under Settings → Variables → Actions in your GitHub repository |
| 🥉 Config Files | Fallback defaults stored in .github/config/*.json (e.g., defaults.json) |
| Parameter | Description |
|---|---|
UNITY_VERSION |
Unity version (e.g., 2022.3.14f1) |
PROJECT_NAME |
Project name used in builds/artifacts |
BUILD_TARGETS |
JSON array of build targets (e.g., [ "WebGL" ]) |
DEPLOY_TARGETS |
JSON array of deploy targets (e.g., [ "gh-pages" ]) |
USE_GIT_LFS |
Whether to enable Git LFS (default: false) |
EXCLUDE_UNITY_TESTS |
Whether to skip tests (default: false) |
For fallback defaults, you can create these files in .github/config:
-
defaults.json→ Defines fallback values for pipeline variables. -
deploy-targets.json→ Maps deploy targets to required OS. -
target-platforms.json→ Lists supported Unity build platforms.
💡 Note: Repository variables override config files,
and manual workflow inputs override both.
When the pipeline resolves parameters, it uses:
| Priority Rank | Source |
|---|---|
| 🥇 1 | Workflow Dispatch Inputs |
| 🥈 2 | Repository Variables |
| 🥉 3 | Config File Defaults |
For example:
- If you set
inputs.unityVersionin a manual run, it overrides both theUNITY_VERSIONrepo variable anddefaults.json. - If no manual input is provided, the pipeline uses the repo variable.
- If neither is provided, it falls back to the config file.
workflow_dispatch:
inputs:
buildType: preview / release_candidate / release
skipTests: default / true / false
deployTargets: ["gh-pages", "itch.io", ...]
buildTargets: ["WebGL", "iOS", ...]Let’s build better Unity pipelines together! 🚀
Need help? Join the Discussions or open an Issue.