Build System [Definitive Infinity Media]
Reusable Unity Build Automation, desktop release, patch, and launcher integration for Windows, macOS, and Linux
Explore the docs »
View Demo
·
Report Bug
·
Request Feature
Table of Contents
About The Project
Reusable Unity Build Automation, desktop release, patch, and launcher integration for Windows, macOS, and Linux.
- Automated Builds — version bump and optional external build trigger workflows
- Cross-Platform — support for Windows, macOS, and Linux desktop releases
- Unity DevOps / UCD — desktop release coordinator with signed manifests, patch generation, and launcher reuse
- Dev Launcher — easy development launch workflow
Getting Started
Prerequisites
- Unity 2022.3 LTS or newer
- A Unity project with Git source control
- A GitHub repository for the project
Installation
Option 1 — Package Manager (git URL)
Open the add
[+]menu in the Package Manager toolbar.Select Add package from git URL.
Enter:
https://github.com/Definitive-Infinity-Media/com.definitiveinfinitymedia.buildsystem.git
Option 2 — Scoped registry
Open Edit > Project Settings > Package Manager.
Add the registry:
Field Value Name Definitive Infinity Media URL https://npm.pkg.github.com/@Definitive-Infinity-Media Scope(s) com.definitiveinfinitymedia Add a
.upmconfig.tomlfile to your user root (Windows:%USERPROFILE%\.upmconfig.toml, macOS/Linux:~/.upmconfig.toml) with a GitHub PAT:[npmAuth."https://npm.pkg.github.com/@Definitive-Infinity-Media"] token = "ghp_..." email = "you@example.com" alwaysAuth = trueAdd the package to the project's
Packages/manifest.json:"com.definitiveinfinitymedia.buildsystem": "1.13.4"
Setup CI/CD
After the package is installed, use the Unity editor menu to scaffold the workflows.
- Open Tools > Definitive Infinity Media > Build System > Setup Build System.
- Click Install to scaffold GitHub Actions, Unity Build Automation, and automated testing assemblies. Toggle Include signed release trust templates (advanced) only if you need TUF/KMS signed releases.
- Use Open Unity Build Automation Cloud setup from the same window if you need to create the six desktop build targets directly in Unity Cloud.
- Run Tools > Definitive Infinity Media > Build System > Validate Setup to confirm everything is filled.
- Commit the generated files and configure the required secrets/variables described below.
Usage
Use the editor menu Tools > Definitive Infinity Media > Build System to access setup wizards and project settings.
- Setup Build System — one-click install of GitHub Actions, Unity Build Automation, and automated testing assemblies
- Validate Setup — check the BuildSystemSettings asset, scenes, and standalone build targets
- Build Tools — open the multi-platform build window
- Build Launcher + PreGame Scenes — generate the launcher and pre-game scenes
- Documentation — open the package documentation
For more examples, please refer to the Documentation
GitHub Actions
The package installs workflow templates into the Unity project. The following secrets and variables must be configured in the GitHub repository after setup.
build.yml
WEBHOOK_URL(optional repository secret or variable) — external build trigger such as TeamCity.
run_tests.yml
UNITY_LICENSEUNITY_EMAILUNITY_PASSWORDGITHUB_TOKEN(provided automatically)
unity-build-automation.yml
Protected production environment variables:
UNITY_API_BASEUNITY_ORG_IDUNITY_PROJECT_IDUNITY_EDITOR_VERSIONUNITY_WINDOWS_TARGET_ID,UNITY_LINUX_TARGET_ID,UNITY_MACOS_TARGET_IDUNITY_WINDOWS_LAUNCHER_TARGET_ID,UNITY_LINUX_LAUNCHER_TARGET_ID,UNITY_MACOS_LAUNCHER_TARGET_IDS3_BUCKET,S3_PREFIXSPACES_REGION,SPACES_ENDPOINTMHLAB_PATCH_TOOL_URL,MHLAB_PATCH_TOOL_SHA256ENABLE_LAUNCHER_REUSE- Release signing and TUF KMS / public-key variables (see the generated checklist for the full list)
Protected production environment secrets:
UNITY_ACCESS_TOKENSPACES_ACCESS_KEY_ID,SPACES_SECRET_ACCESS_KEY
See the generated Documentation/UnityBuildAutomationChecklist.md for the complete lockdown and key-provisioning checklist.
Dependencies
| Package | Version |
|---|---|
| com.definitiveinfinitymedia.utilities | 1.12.2 |
| com.unity.editorcoroutines | 1.0.0 |
| com.unity.project-auditor | 1.0.1 |
Contributing
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this package better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Contact
Definitive Infinity Media - contact@definitiveinfinitymedia.com
Project Link: https://github.com/Definitive-Infinity-Media/com.definitiveinfinitymedia.buildsystem