Advertisement

Buildbot for AngelScript

Started by October 02, 2010 08:58 PM
19 comments, last by droz 14 years, 1 month ago
While setting up buildbot, and some slaves for my project, I thought you might have some use for it to. I only have slaves running on FreeBSD and Linux right now, but hope to add a Windows slave soon. It's polling the subversion repository, and should compile and test any new commits.

You can view the web ui and force builds at:
http://angelscript-build.dyndns.org:8010/

You will also notice that test_feature fails to compile on Linux (see log). You forgot to include stdio.h in scripthelper add-on which is required for fopen on posix. Hopefully this can help you quickly catch simple portability issues in the future.

It would be great if other people could host buildslave's on other platforms. I would be more than willing to help set it up.

- Jeremy
This looks useful. Thanks for setting this up.

AngelCode.com - game development and more - Reference DB - game developer references
AngelScript - free scripting library - BMFont - free bitmap font generator - Tower - free puzzle game

Advertisement
I hope to add a 64bit Linux builder which will be running emulated in qemu (slow, but will still work). I also need to figure out the "try" command, which lets you test code across all builders before you commit it. That will be very helpful to me, and will probably help you also.

If you would like the build logs emailed to you, let me know and I can set that up.
Would it be possible to run the test_features test automatically after it has been completed? Or is this only compiling the binaries?

AngelCode.com - game development and more - Reference DB - game developer references
AngelScript - free scripting library - BMFont - free bitmap font generator - Tower - free puzzle game

Forget my last question. I saw you already do this. :)

This is working well. I already checked in the 'stdio.h' fix and requested a new build, which passed.

AngelCode.com - game development and more - Reference DB - game developer references
AngelScript - free scripting library - BMFont - free bitmap font generator - Tower - free puzzle game

I added a buildslave running 64-bit Linux, it is on a emulated system so expect it be A LOT slower than the other slaves. Right now I'm using the default polling for the subversion repository, I think I will change it to check every hour. I'm not sure how happy sourceforge will be about me polling it every 2 minutes like it is now, either way you can always force a build if you want.

The server mostly sits idle in my room, just handling GIT hosting and some file sharing for my network so not much load on it.
Advertisement
Wow! The emulated system is really slow took 1 hour and 12 minutes to do a full build and run test_feature. In the future it won't have to do a complete re-build, which will help.

It may be to slow to be useful though, so I don't know if I'll keep it.
Unless it impacts your other works negatively I'd very much appreciate to have the ability to at least manually request a Linux 64bit build and test. I don't mind it taking a long time to run, as it is mostly to make sure I don't break the compatibility, not to do actual development.

AngelCode.com - game development and more - Reference DB - game developer references
AngelScript - free scripting library - BMFont - free bitmap font generator - Tower - free puzzle game

I'm having some issues with it now not wanting to boot-up, so I'm going to try Debian. Hopefully I can get it back up some time today. I think I will set it up to only do nightly builds on it, and you can always force a build when you need. This way it won't try to compile every commit.
I'm can add a build-slave cross-compiling it for Windows, and then runs test_feature using wine. I need to get rid of the "Press any key to quit.", so I changed the following:

test_feature/source/main.cpp:
#if !defined(DONT_WAIT) && (defined(WIN32) || defined(_WIN64))	printf("Press any key to quit.\n");	while(!_getch());#endif	return 0;failed:	printf("--------------------------------------------\n");	printf("One of the tests failed, see details above.\n\n");#if !defined(DONT_WAIT) && (defined(WIN32) || defined(_WIN64))	printf("Press any key to quit.\n");	while(!_getch());#endif


Then in the gnuc makefile I added the following:
# Test Framework GNUC makefileCXX = g++CXXFLAGS = -ggdb -I../../../../angelscript/include -Wno-missing-field-initializersSRCDIR = ../../sourceOBJDIR = objifdef DONT_WAIT    CXXFLAGS += -DDONT_WAITendif


This way I can compile it with DONT_WAIT enabled and skip that, if you want to make the above changes, I can add this. I already do this for my project and it works very well, including running the app with wine.

This topic is closed to new replies.

Advertisement