-
Notifications
You must be signed in to change notification settings - Fork 0
CI CD Workflows
Ethan edited this page Sep 27, 2025
·
4 revisions

This page explains the Continuous Integration / Continuous Deployment (CI/CD) setup used in this template to build and export Unity packages automatically.
The CI/CD workflow automates:
- License validation β Ensures the Unity license is valid and not expired before building.
-
Automated package building β Uses
game-ci/unity-builderwith the built-inExporter.ExportPackagemethod. - Artifact storage β Makes the built package available for download in the workflow artifacts.
The workflow is defined in:
.github/workflows/package-builder.ymlThe workflow runs:
-
Automatically on push to:
-
mainbranch - Any branch starting with
experimental/
-
- Manually via the Run workflow button in the GitHub Actions tab.
Before running, the repository must have these secrets set in Settings β Secrets and variables β Actions:
| Secret | Description |
|---|---|
UNITY_LICENSE |
Unity license file (ULF) contents. |
UNITY_EMAIL |
Unity account email. |
UNITY_PASSWORD |
Unity account password. |
β Important:
- Keep these secrets up to date.
- The license expiration date is currently set in
stopDateinside the workflow file. - If you are unsure about what values to use or how to obtain them, contact: @PharaEthan | Lead Developer | ethan.hernou@gmail.com
1οΈβ£ License Check
-
Runs on:
ubuntu-latest -
Purpose:
- Fails the workflow if the Unity license is missing.
- Compares the current date to the
stopDatevariable to ensure it has not expired.
2οΈβ£ Package Export
- Runs on: windows-latest
-
Uses:
game-ci/unity-builder -
Build Method:
Exporter.ExportPackage(defined inside the Unity project). -
Script Location:
<package-name>/Assets/Editor/Exporter.cs -
Export rules:
- Includes
Scripts/,Resources/,Editor/,Demo/. - Excludes
Tests/folders automatically.
- Includes
-
Target Platform:
StandaloneWindows64(can be extended for other platforms). -
Output:
.unitypackagefile stored inside:
template-package/ExportedPackages/3οΈβ£ Artifact Upload
- Uses
actions/upload-artifactto store the built.unitypackageas a downloadable file from the GitHub Actions run page.
Result:

-
Unity version β Change
unityVersionin the workflow file. -
Docker image β Update
dockerImageto match your Unity version (source: docker unity-ci). -
Project path β Change
projectPathto your Unity project folder (automatically changed when usingrename.ps1renaming project script). -
Package export rules β Adjust the
Exporter.csscript if you want to include/exclude more folders. -
License expiration β Update
stopDateafter renewing your Unity license.
- Go to the Actions tab in the repository.
- Select the latest successful run of Export Unity Package.
- Scroll to the Artifacts section.
- Click UnityPackage to download the .unitypackage.

- If the license expires, the build will fail until the
UNITY_LICENSEsecret is updated. - Always keep the Unity version aligned with OMGGβs development environment.
- If you add more platforms, update the matrix section in
exportPackage. - If you add more folders, make sure to reflect them in
Exporter.csso they are properly included/excluded.
If you encounter any issues with this GitHub Action, do not hesitate to contact:
- @PharaEthan | Lead Developer | ethan.hernou@gmail.com