I went back and on January 10th you guys were trying to speed up the build process. Have you tried using Jenkins with Apache Maven to do that? If you could explain to Maven how to build Unity projects, or even Apache Ant, you could probably automate that stuff, and have Jenkins compile and run all your tests with every commit.
Both of these are free and open sourced. It's just a thought. If you need other ways to test software I can advise on that now. I guess I'm sort of being made into an expert on automatic testing.
Sounds like a pretty awesome set of work you're doing with your internship! Very very cool.
In our case, a lot of our issues were based on the literal time that operations take (while blocking our computer from much other than forum posting), and not really related to the number of steps that had to be manually undertaken by a person during said process. The latter was a milder part of the issue, but batch scripting solved that pretty neatly.
Mainly there are slow ways that unity builds things, and fast ways. The default ways are super-slow. So we had to delve into less traveled paths within unity and set up the projects in unusual ways (for a small dev) to get that moving faster. In general that involves getting unity to use its own cache more, and not do massive amounts of internal repeated work with GBs of data, etc. That's all black-box, so it was a matter of experimenting with it and listening to what other larger devs were doing.
Fortunately we got that all worked out now, and for the most part I can just hit a couple of batch scripts and the build happens within seconds. Mostly. There are a few more automations that would be possible, but for the time being the ones that are not in there are ones that we need to hand-check at the moment to make sure that things are ok.
But those are certainly powerful tools you're working with, for sure!
Ahh, but with Jenkins and either Ant or Maven, it does the batch scripting for you, and you never have to worry about it again. Plus you can set up a build server to run that for you while you continue talking.
There are other tools though out there, like there is one that if you're using Github, it will trigger any time you commit to it, and auto compile and run all your scripts remotely.
Also, I'm not playing with them... yet. I'm under orders to look but not touch, which is very painful for me, as there are many I want to take apart to see how they work.
edit: Just to be clear here, this is what I was proposing:
Jenkins can be set up to detect when you commit a new build. It will then call out to ant with a script similar to what Keith was making, or Maven with a simpler script (supposedly Maven is intelligent enough to figure out what order to do things), and they will compile it.
Then Jenkins will log the compiler outcome and if it succeeded it will run the tests.
Finally Jenkins will log the tests outcome and compile that into a report that you both can view in a web browser. Heck, you could even share that report with all of us that backed you. This will happen automatically every time you commit code, and if you make a server who's only job is to run this, even if it's slow you won't be locked down every commit. Keith could commit, get up, go to the bathroom, and then come back, or just chat for a while, no problem.
Second edit: Gah! I can't find any of the repositories that used Jenkins that I've seen over the last few days. Every one I pull up is using a similar but new one called Travis CI instead. It looks very similar though so here's an example of it
https://travis-ci.org/apache/zeppelin/branchesProblem with Travis CI is it's only free if you're writing open source, which you aren't, plus I think it only works on Github, so you'd have to pay for private repositories and pay for Travis CI.
Anyways, I thought I'd give you a taste of what it looks like. Honestly there is no reason why you guys shouldn't be at least using some CI software, as it looks like a great quality of life improvement. I'm going to try setting up Jenkins with my club's repository and see how that goes.