Archive

Posts Tagged ‘unity3d’

Another Unity3D Project Contineous Integration: Hudson CI on Mac OSX

May 15th, 2010 No comments

Last week, I have automated the build system on windows by Cruise Control .net, unity3d and a couple of ftp tasks. However, there was a couple of problems in running ccnet as a windows service mode. While it was running great in command prompt, it gives errors in service mode. It wouldn’t be an issue if there is a dedeciated build windows server and nobody will mess with the command window. But unfortunately it wasn’t my case.

Now I turned my eyes to mac machine which I use it less frequently.
I spent a few hours to find a good solution for it and came up with this combination.

Hudson CI + Subversion + Unity mac + Hudson SCP plugin + Hudson post build script.

Here are the steps:

  1. Download hudson.war file from http://hudson-ci.org
  2. Place the war file into the directory of your choice. In my case, I made a special directory called “/_infra/” and place it in here. All CI related files will be stored under “/_infra/hudsonci/”.
  3. Though it will run great by running this command “java -jar hudson.war”, I want to run this more of a demon-style. There is another option of installing tomcat and place the war file under webapp but it is too much in my case. So the solution I used is this. Make this file “hundson.ci.plist” with the following information first. You can download it from here. Another trick I used here is that by explictly expressing the installation directy with “-DHUDSON=/_infra/hudsonci”, you can install the hudson in the designated directory instead of  “~./hudson”.
  4. Place the file in ~/Library/LaunchAgents/.
  5. Load this plist file as a service by running this command: “launchctl load -w ~/Library/LaunchAgents/hudson.ci.plist”
  6. Check hudson installation in http://localhost:8080

References:

[35.1] 템플릿에 담겨진 숨은 뜻은 무엇인가요?
[35.2] “class template”의 문법/구문은 무엇인가요?
[35.3] “function template”의 문법/구문은 무엇인가요?
[35.4] 어떻게 명시적으로 어떤 버전의 함수 템플릿이 호출되어야 할지를 선택할 수 있나요?
[35.5] “매게변수화된 형(Parameterized Type)”이란 무엇인가요?
[35.6] “범용성(Genericity)”란 무엇인가요?
[35.7] 내 템플릿 함수는 템플릿 형 T가 int혹은 std::string일때 특별한 동작을 하는데, T가 이렇게 형마다 다를 경우에 어떻게 이에 해당하는 코드를 작성할 수 있나요?
template so it uses the special code when T is one of those specific types?
[35.8] 응? foo나 bar를 사용하지 않는 템플릿 특수화의 예제를 보여주세요.
[35.9] 내 템플릿하무에 있는 대부분의 코드는 다 비슷해요; 소스 코드를 중복시키지 않으면서도 템플릿 특수화를 할 수 있는 특별한 방법이 있나요?
[35.10] 모든 이런 템플릿과 템플릿 특수화를 사용하면 프로그램을 느리게 할 것 같아요, 맞나요?

Successfully Built a Production Pipleline: SVN + Unity3D + CruiseControl.net + Publish To Web

May 8th, 2010 No comments

ccnet logo

As the number of the Unity3D web projects has increased, I was looking for a decent way of automating deployment.
I took some time to research and read some articles about it and finally get it all working.

The whole build pipeline was set up on Windows machine and SVN and TRAC has setup on Linux in a different machine.

Check these articles and I’m sure any one can do the same without too much of hassle.

A few notes:

  • Even though Unity doesn’t allow multiple instances when it’s running in editor, it does allows multiple instances when it’s running in batch mode
  • SVN is really poorly handing binary data such as the art assets. Maybe using Mercurial might be helpful and yet just don’t have a resource to look into it yet.
  • Combining with TDD tools like NUnit will be great and yet there was an unexpected error when handling GUIStyle with NUnit. Should look into more in a near future.