-
Notifications
You must be signed in to change notification settings - Fork 8
Required Secrets
Can be found under:
Settings → Secrets and variables → Actions → Secrets
| Secret Name | Required | Description |
|---|---|---|
CICD_PAT |
✅ | A Personal Access Token with 'repo' and 'workflow' permissions |
UNITY_EMAIL |
✅ | Unity account email |
UNITY_PASSWORD |
✅ | Unity account password |
UNITY_LICENSE |
✅ | Raw .ulf license contents |
DISCORD_WEBHOOK |
❌ | Discord Webhook URL for optional CI notifications |
SLACK_WEBHOOK |
❌ | Slack Webhook URL for optional CI notifications |
These are the required secrets for each optional deploy target, only include if needed:
| Target | Required Secrets |
|---|---|
itch.io |
DEPLOY_API_KEY, ITCH_USERNAME, ITCH_PROJECT
|
testflight |
APPSTORE_API_KEY_ID, APPSTORE_API_ISSUER_ID, APPSTORE_API_PRIVATE_KEY
|
steam |
STEAM_USERNAME, STEAM_PASSWORD, STEAM_APP_ID
|
To run Unity builds and tests in this CI/CD pipeline, you must activate a Unity license for use inside GitHub Actions.
This guide explains how to prepare and securely store your Unity license, depending on your license type.
👉 Reference: GameCI Unity Activation Docs
| License Type | Setup Section |
|---|---|
| Unity Personal (Free) | Personal License Setup |
| Unity Plus / Pro (Paid) | Professional License Setup |
| License Server | License Server Setup |
Use this if you’re using the free Unity Personal license.
1️⃣ Activate Locally
On your machine, open Unity Hub → Preferences → Licenses → Add →
Select Get a free personal license → Complete activation.
2️⃣ Locate .ulf File
After activation, find the license file:
-
Windows →
C:\ProgramData\Unity\Unity_lic.ulf -
macOS →
/Library/Application Support/Unity/Unity_lic.ulf -
Linux →
~/.local/share/unity3d/Unity/Unity_lic.ulf
3️⃣ Add GitHub Secrets
Go to your repository → Settings → Secrets and variables → Actions → Secrets → Add:
-
UNITY_EMAIL→ Your Unity account email. -
UNITY_PASSWORD→ Your Unity account password. -
UNITY_LICENSE→ Paste the full contents of your.ulffile.
✅ Done! Your CI/CD pipeline can now activate the license during test and build steps.
Unfortunately no support for pro-licenses as of now, at least I haven't tested it.
To allow your GitHub Actions CI/CD pipeline to perform advanced tasks like triggering workflows, creating releases, or managing artifacts across workflows or repositories, you need to provide a Personal Access Token (PAT).
By default, GitHub Actions only has access to the built-in ${{ secrets.GITHUB_TOKEN }}, which works inside a single workflow run but has limitations when triggering other workflows or accessing external resources. That’s why we need a separate PAT.
Here’s what the CICD_PAT enables:
✅ Triggering other workflows (e.g., workflow_dispatch from one workflow to another)
✅ Creating or modifying releases (especially across repos)
✅ Uploading or downloading artifacts across repositories
✅ Accessing private repos or organization resources from scripts
✅ Bypassing some permission limits of the default GITHUB_TOKEN
The CICD dispatcher relies on being able to call another workflow from CLI. A regular Git token will not suffice for this. In order to modify the project to create releases, the CICD_PAT will also be necessary to have those permissions
1️⃣ Go to GitHub → Your Profile → Settings → Developer Settings → Personal Access Tokens → Tokens (classic)
👉 Direct Link: https://github.com/settings/tokens
2️⃣ Click “Generate new token (classic)”
3️⃣ Name your token something clear, e.g., cicd-pat
4️⃣ Set Expiration → Choose a reasonable expiration (recommend renewing regularly)
5️⃣ Select Scopes (Permissions):
- ✅
repo→ Full control of private repositories (needed for workflows touching code, releases, or artifacts)
- ✅
workflow→ Update GitHub Action workflows, trigger workflow runs
6️⃣ Generate Token → Copy it once (you won’t be able to see it again)
7️⃣ Add GitHub Secrets
Go to your repository → Settings → Secrets and variables → Actions → Secrets → Add:
Title:CICD_PAT
Value: Paste your PAT into the value field
Let’s build better Unity pipelines together! 🚀
Need help? Join the Discussions or open an Issue.