mindcandy / Teamcity-unity3d-build-runner-plugin

A Teamcity plugin for building Unity3d projects. NOTE: this has an MIT license so feel free to copy / adapt as you need to.
107 stars 59 forks source link

Support multiple versions of unity installed on a single build agent #7

Closed markltbaker closed 9 years ago

markltbaker commented 11 years ago

As we have multiple teams using Unity3d and sharing the build machines, we should allow multiple versions installed at the same time. Unity has an installer BUT you can rename/move the folder after install. So we could require all Unity versions to be installed in /Applications/UnityVersions/... We can then auto detect the actual version from the info.plist file To specify which version, we can use Agent Requirements and/or a new version parameter on the Unity Runner. This would select a MAJOR and MINOR version number. The Build Runner can add any number of version parameters as Agent Parameters in the format unity.version.MAJOR.MINOR e.g. unity.version.4.3=4.3.2f4 unity.version.5.1=5.1.0beta4

(MC story TOOL-606)

FriedrichWessel commented 11 years ago

What do you think about add an extra Field to the Build Step Configuration where you can specify the Path to the Unity Installs? So the /Applications/UnityVersion/... is just the default Path and not mandatory ? We have installed our Unity Versions side-by-side in the Applications folder like: Applications/Unity3, Applications/Unity4 etc.

markltbaker commented 11 years ago

I think it's important to keep the build agents reporting which versions of unity they have, with the build specifying which version it needs as a requirement. That then allows team city to choose an appropriate agent to run a build on.

However I do think the idea of providing a list of install directories is a good one. What I suggest is that it goes into the agent configuration file and then the unity build plugin reads that & then finds plist/other config files to work out which versions are present.

Now the one wrinkle is that I don't know if teamcity supports a list of versions for its requirement matching. :( I might have to ask on their community forum about it.

Certainly if it's major versions of unity it would be possible to put that into the property name itself eg unity.version.4 = 4.1.3 and unity.version.3 = 3.1.1

That will probably suffice for now in fact.

On Thursday, November 7, 2013, FriedrichWessel wrote:

What do you think about add an extra Field to the Build Step Configuration where you can specify the Path to the Unity Installs? So the /Applications/UnityVersion/... is just the default Path and not mandatory ? We have installed our Unity Versions side-by-side in the Applications folder like: Applications/Unity3, Applications/Unity4 etc.

— Reply to this email directly or view it on GitHubhttps://github.com/mindcandy/Teamcity-unity3d-build-runner-plugin/issues/7#issuecomment-27944453 .

Mark Baker Technology Lead, Tools

http://www.mindcandy.com http://www.moshimonsters.com

+44 (0) 7971 808 540 markb@mindcandy.com

markltbaker commented 9 years ago

Update: working on this now. If anyone is using Windows/Mac and wants to test it out please let me know!

markltbaker commented 9 years ago

Seems to be working here so closing, but please do give me feedback as I'm happy to fix bugs where they are found :)