Support for Unity

From Karl Söderström on 2016/04/15 13:02:29 +0000

This was originally a mail to support. I’m just pasting it here unedited for a public discussion.


We’re starting a project that involves Unity (http://unity3d.com) on iOS and Android, and I wanted to setup a CI solution for this, preferably with Bitrise. It’s however not that simple to do, and I would like to check if you have any good solutions for these problems.

First, a couple of facts about Unity:

  • Unity is only available for OS X and Windows (not linux)

  • From the Unity project you will generate an Xcode project, which is then build with the xcbuild toolchain. Android works the same way

  • Unity is big. With support for iOS and Android the download is about 2.5 GB.

Lots of questions, thoughts, etc on this:

  1. It’s possible for a workflow step to install Unity, however downloading and installing Unity with support for iOS and Android takes roughly 30 minutes on bitrise. So while possible, it doesn’t feel quite optimal.

  2. Is it possible to provide a custom vagrant box for OS X builds, in the same way as docker images for linux? That would make it easier, as I could preload Unity.

  3. Do you run a HTTP proxy in front of the build boxes? It seems like the downloads are quite fast on a second build. When does the cache expire?

  4. Are you considering adding Unity as a stack, just like you have Xamarin?

  5. I looked a bit at Generic File Storage. Is this one of the use cases for that? Are those files hosted on the same network as the build boxes?

  6. Would it be possible to somehow build an Android app on a OS X VM? Since Unity won’t run on linux, the generation of the Android project needs to happen on OS X. How would I then build the Android app? Any way of triggering another bitrise app to do that? I thought about automatically pushing the resulting project to a git repo, which would then trigger a new build, but Unity uses large blob files, which is not a fun thing to put in git. Ideas?

Sorry about this being somewhat unstructured and rambling, but I’m trying to wrap my head around it all, which generates lots of thoughts and questions :slight_smile:

Copied from original feature request: http://bitrise.uservoice.com/forums/235233-general/suggestions/13440054-support-for-unity

1 Like

From Bitrise on 2016/04/15 13:06:38 +0000

This is a really interesting idea! Unfortunately, right now we don't have the features you'd need to make this possible in a fast and efficient way.

If this feature request gets enough vote we'll definitely think about providing a dedicated Stack for Unity, just like we do for Xamarin, but you have to keep in mind that providing a new Stack is not a small task. We have to have a team for both maintaining the stack and to provide support for Stack related questions. Right now we don't have anyone in our team with an extensive Unity knowledge.

An alternative way might be to allow custom Vagrant images, that's certainly an interesting idea. It's not possible right now, and due to OS X licensing it's not really possible to provide public Vagrant images, but allowing private Vagrant images might be something we'll explore in the future.

Any update on this?

We would be happy to move our builds to bitrise, but atm unity is the road block :(.

Hey @DracoBlue! :wave:t2:

We are already working on a prototype, and looking for users are ready to test. For now, testing unity builds are not possible on personal plan, so if you have a paid unity plan, and wouldn’t mind running some test builds please contact us.

It would be awesome! :rocket::tada:

2 Likes

Awesome. @kwnetzwelt is one of our Unity Experts at https://exozet.com

Can you send the necessary information to him?

1 Like

Sure, I’ll prepare the workflow soon!
Thank you! :rocket:

2 Likes

Couldn’t get in touch with @kwnetzwelt however the how-to is just finished, please take a look at here:

3 Likes

Thanks so much for the guide, will try it soon!

2 Likes