Build an Eclipse Workspace
I am in the process of converting our existing custom continuous build system to use TeamCity. Our current system is brittle and requires a degree of maintenance we can ill afford. TeamCity appears to work well for many of our build scenarios. One scenario leaves me wondering if there is a better way to utilize TeamCity.
We have a hardware project that is set up to build using Eclipse configured with a specific set of tool chains. Developers run the IDE, and for lack of an Eclipse build runner, I am using TeamCity to build the project from a commandline runner using python scripts.
The script runs launches Eclipse from the command line numerous times to performing the following tasks:
- Delete the contents of the Eclipse workspace.
- Import a number (10 or so) of Eclipse projects into the workspace.
- Build the workspace
The problems with this approach are as follows:
- There is no build runner for Eclipse. The scripts work, but there is overhead in developing and maintaining the scripts. This is the very thing we are trying to get away from.
- There is no TeamCity parsing of the output (gcc and eclipse). I have to redirect the output to file, and when each individual Eclipse process finishes, parse the file for errors, warnings, progress status, etc., in order to inject the appropriate TeamCity service message to stdout. Again this kind of overhead is the very thing we are trying to get away from.
Given no Eclipse build runner just days away from release, is there a better mechanism for loading and building an Eclipse workspace with TeamCity?
Given the commandline runner script solution, is there a better machnism for capturing and displaying errors, warnings, etc.?
Please sign in to leave a comment.
Since you mention a hardware project and using gcc I am guessing you are using the CDT version of eclipse
I don't know if eclipse supports a headless make now a days.. I know theer was request for it .. but about 2 years ago when we had a similar problem we solved it as follows
Developers used eclipse workspaces in the normal development process .. importantly we used managed makes.. this meant that eclipse created all our make and submake files
During delivery to the VCS these make files were also included in the delivery.
Then our build process simply involved running a make command on the primary makefile and output logs are then in the standard Gcc etc format
We are running Eclipse IDE for C/C++ Developers (Juno release) which does support headless builds. We went with the eclipse approach so we could aviod managing a multitude of make files. If the current approach becomes problematic, we will have to reconsider managing make files.