Ranting about CruiseControl

We’re using CruiseControl on one of our big projects. It seems like it became a sort of standard in large companies. But every time I see it – I can’t help thinking that it’s something really ancient and not flexible at all. Today one of our newbies couldn’t find the reason of why CI is failing.

We got email with the following contents:

Ant Error Message:  project/build-tools/build-project.xml:257: The following error occurred while executing this line: ci/android-sdk-linux/tools/ant/build.xml:625: The following error occurred while executing this line: /usr/local/ci/android-sdk-linux/tools/ant/build.xml:661: null returned: 1
And she really couldn’t understand what is the reason. What is more essential for the CI than to provide a good failure description?

However to get the reason of problem we had to go to the build server and click “XML Log File” button and then to parse the whole XML in order to see the following lines in XML:

project/res/values-sw600dp/info_with_caption_row_styles.xml:14: error: Resource entry info_with_caption_row_text1 already has bag item android:textColor.
project/res/values-sw600dp/info_with_caption_row_styles.xml:12: Originally defined here.
project/res/values-sw600dp/info_with_caption_row_styles.xml:23: error: Resource entry info_with_caption_row_text2 already has bag item android:textColor.
project/res/values-sw600dp/info_with_caption_row_styles.xml:22: Originally defined here.
project/res/values-sw480dp/subheading_row_style.xml:16: error: Resource entry subheading_row_text1 already has bag item android:textColor.
project/res/values-sw480dp/subheading_row_style.xml:13: Originally defined here.

It seems so weird after years of using Hudson/Jenkins. CruiseControl still lacks plugins like CPD, Android Lint. Thanks to Android Lint I now have a really good argument to use Jenkins as the project CI. However it will definitely takes some time to push things on large projects which already lasted for years. The fact that our release engineer started to play with Jenkins and a set of plugins useful for Android development(Android Lint, CheckStyle, PMD, CPD, FindBugs) brings some hope.