The plugin supports building Unity projects on TeamCity.
- Unity versions detection on build agents
- Unity build runner with smart completions
- Automatic discovery of Unity build steps
- Structured build log with problems highlighting
- Unity Editor tests reporting
- Unity build settings feature
- Unity as Agent tool
This TeamCity build feature allows to automatically activate and return Unity Editor license before build start and after build completion.
Also it allows to configure Unity cache server address in one place to use this setting within Unity build steps.
You can download the plugin and install it as an additional TeamCity plugin.
The plugin is compatible with TeamCity 2018.1+ and was verified to work with Unity 2017+.
The plugin automatically detects Editors installed via Unity Hub. Also it searches Editors in the PATH
environment variable and in the following well-known directories:
- macOS:
/Applications/Unity*
and/Applications/Unity/Hub/Editor/*
- Linux:
/opt/Unity*
/~/Unity*
and/opt/Unity/Hub/Editor/*
/~/Unity/Hub/Editor/*
- Windows:
%Program Files%/Unity*
and%Program Files%/Unity/Hub/Editor/*
Note: you need to start TeamCity build agent under the same user account which is used for Unity Hub installation.
To add Unity installation located in custom path you could use UNITY_HOME
environment variable, e.g. UNITY_HOME=C:\Tools\Unity_2018.1\
. Multiple paths could be specified by using default path delimiter.
To search Unity installation directories in custom path matching Unity*
pattern you could use UNITY_HINT_PATH
environment variable, e.g. UNITY_HINT_PATH=C:\Tools
. Multiple paths could be specified by using default path delimiter.
You may also install Unity as a TeamCity agent tool. See TeamCity Agent Tool Configuration for more information.
All detected Unity versions will be reported as build agent configuration parameters with the unity.path.%unityVersion%
prefix. They could be found on the Agents -> "%agentName%" -> Agent Parameters -> Configuration Parameters page in TeamCity server UI.
The runner allows overriding default error logging settings by using "Line statuses file" parameter where you could specify the path to configuration file. Example file contents:
<?xml version="1.0" encoding="UTF-8"?>
<lines>
<line level="warning" message="warning CS\d+" />
<line level="error" message="error CS\d+" />
</lines>
This plugin supports optionally installing Unity as a TeamCity agent tool.
To create a tool zip file for Unity, do the following:
- Locally install (or extract) the desired version of Unity along with any/all desired Target Support (Android, iOS, Xbox, etc.)
- Zip the
Editor
folder into an archive namedUnity-<version>.zip
such asUnity-2018.4.9f1.zip
It should look like this:📁 Unity_2018.4.9f1.zip |- 📂 Editor │ |- 📂 BugReporter │ |- 📂 Data │ |- 📂 locales │ |- 📄 Unity.exe │ |- ...
- Upload as a Unity Tool on the Administration > Tools page on TeamCity
This problem indicates that the Unity Editor installation was not found on any of build agent machines. Check that you have installed Editor on your build agents and machines were properly configured.
This project uses Gradle as the build system. You can easily open it in IntelliJ IDEA or Eclipse.
We appreciate all kinds of feedback, so please feel free to send a PR or submit an issue.