Jenkins and fourdigits.support
An Continuous Integration System setup for our own intranet.
Based on a blog post by Asko Soukka 'Getting started with Robot Framework and plone.app.testing' and the documentation from buildout.jenkins I started setting up a testing enviroment for our internally used support system based on Plone.
The fourdigits.support system includes all our documents (DMS) and relations (CRM) and is the place for our customers to make tickets and for us to do our work. We are upgrading this to Plone 4 and making it completly Dexterty based. Look at the blogpost about migrating the 100k objects.
Setting up Jenkins
Based on the documentation from buildout.jenkins I setup my Jenkins environment and got started running tests on the packages. The cool thing about the documentation is, it includes information about PEP8, code coverage and Robot tests. The output information is shown in graphs by Jenkins.
Soon after the first test runs it became clear, more sun feels better :)
The sunshine in Jenkins is based on the citeria set in your project, in this case: PEP8, Coverage, build stability, Robot and intergration test. Having them all at 100, you will have a nice full sun, if not its getting cloudy and in worst case it will rain…
My local PEP8 was outdated and so localy everything was PEP8, but at the Jenkins eviorment it was not.. Jenkins was complaining about lots of line indenting errors, as they changed that in later PEP8 relaces. Fixing them was pretty easy.
My personal knowhow about Robot tests was pretty okay, I have made some already in different projects and creating new ones to test all objects was just a matter of time and clicking thru the interface looking if i missed something. I love the use the Information about selenium testing from the selenium2library.
The last part was the code coverage. This is pretty cool, i knew not everything was fully tested, but having the code covarage made visible in jenkins it just to easy to create more tests and hit all the lines.
The project will definitely profit from having it in Jenkins, quality and code improved even if it was just PEP8 fixes. It made me think about consequences, testing, setup and what should be in packages and what should not.