Table of Contents

Contributors Forks Stargazers Issues


Logo

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
  1. About The Project
  2. Getting Started
  3. Usage
  4. GitHub Actions
  5. Dependencies
  6. Contributing
  7. Contact
  8. Acknowledgments

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

(back to top)

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)

  1. Open the add [+] menu in the Package Manager toolbar.

  2. Select Add package from git URL.

  3. Enter:

    https://github.com/Definitive-Infinity-Media/com.definitiveinfinitymedia.buildsystem.git
    

Option 2 — Scoped registry

  1. Open Edit > Project Settings > Package Manager.

  2. Add the registry:

    Field Value
    Name Definitive Infinity Media
    URL https://npm.pkg.github.com/@Definitive-Infinity-Media
    Scope(s) com.definitiveinfinitymedia
  3. Add a .upmconfig.toml file 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 = true
    
  4. Add 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.

  1. Open Tools > Definitive Infinity Media > Build System > Setup Build System.
  2. 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.
  3. 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.
  4. Run Tools > Definitive Infinity Media > Build System > Validate Setup to confirm everything is filled.
  5. Commit the generated files and configure the required secrets/variables described below.

(back to top)

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

(back to top)

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_LICENSE
  • UNITY_EMAIL
  • UNITY_PASSWORD
  • GITHUB_TOKEN (provided automatically)

unity-build-automation.yml

Protected production environment variables:

  • UNITY_API_BASE
  • UNITY_ORG_ID
  • UNITY_PROJECT_ID
  • UNITY_EDITOR_VERSION
  • UNITY_WINDOWS_TARGET_ID, UNITY_LINUX_TARGET_ID, UNITY_MACOS_TARGET_ID
  • UNITY_WINDOWS_LAUNCHER_TARGET_ID, UNITY_LINUX_LAUNCHER_TARGET_ID, UNITY_MACOS_LAUNCHER_TARGET_ID
  • S3_BUCKET, S3_PREFIX
  • SPACES_REGION, SPACES_ENDPOINT
  • MHLAB_PATCH_TOOL_URL, MHLAB_PATCH_TOOL_SHA256
  • ENABLE_LAUNCHER_REUSE
  • Release signing and TUF KMS / public-key variables (see the generated checklist for the full list)

Protected production environment secrets:

  • UNITY_ACCESS_TOKEN
  • SPACES_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

(back to top)

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".

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

Contact

Definitive Infinity Media - contact@definitiveinfinitymedia.com

Project Link: https://github.com/Definitive-Infinity-Media/com.definitiveinfinitymedia.buildsystem

(back to top)

Acknowledgments

(back to top)