- Notifications
You must be signed in to change notification settings - Fork6
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, youmust 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 thefree Unity Personal license.
1️⃣Activate Locally
On your machine, openUnity Hub → Preferences → Licenses → Add →
SelectGet 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 artifactsacross workflows or repositories, you need to provide aPersonal Access Token (PAT).
By default, GitHub Actions only has access to the built-in${{ secrets.GITHUB_TOKEN }}, which worksinside a single workflow run but has limitations when triggering other workflows or accessing external resources. That’s why we need aseparate PAT.
Here’s what theCICD_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 defaultGITHUB_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 itonce (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 theDiscussions or open anIssue.