[Owncloud] Continuous Integration Server for ownCloud projects

Thomas Müller thomas.mueller at tmit.eu
Thu Jul 19 20:28:10 UTC 2012


Hi,

the basic idea is to have one (or multiple) dedicated machines, which sole responsibility is to
monitor source code repositories and in case of change perform build actions, run unit tests, 
prepare installer packages, generate nice reports and many more.

What is the goal of this all:
As soon as the code has been changed the ci-server ensures that it still compiles, no test 
case was broken in order to detect regressions as soon as possible and notify the developer(s).

The ci-server for ownCloud is polling the git repos every 10 minutes to detect changes and triggers
the action described in my previous email. All jobs are currently running on git master - other 
branches will follow once the job configurations are finalized.
I'm using Jenkins (meanwhile the most common tools for the job I guess), because I know it for many years now.
Currently there is one server taking care about all jobs but Jenkins allows a distributed setup, which is necessary 
as soon as cross platform compilations are necessary (e.g. Mac build for mirall) or simply there is too much.

I decided to push the notifications to #owncloud-dev as we usually hang around there.
If you see a message from the user owncloud-jenkins - ci is talking to you. ;-)

As of today:
[18:16:54] <owncloud-jenkins> Project ownCloud-Server(master) build #358: STILL FAILING in 5 min 37 sec: http://ci.tmit.eu/job/ownCloud-Server(master)/358/
[18:16:54] <owncloud-jenkins> *  Robin Appelman: fix running test cases from browser
[18:16:55] <owncloud-jenkins> *  Robin Appelman: allow a more flexible way of using user backends

Together with the commit messages and the committers you see which project/job just finished, the duration, 
its status and a link to jump directly into the job.

In case you see a job failing, jump in and try to find the solution and get in contact with the committers involved in this build!
Currently the build for 'ownCloud-Server(master)' is failing due to a unit test within the zip file storage and some troubles I have with the code analysis tools.

How can you contribute:
Write unit test for the code at your hands!
Fixing a bug? -> First write a failing test case, fix the bug and have a successful unit test. This will ensure, that the bug
*most probably* will not a pear again.
This approach will step by step increase the value of the test suite and increase the value of the ci-process.

I hope this all made it a little bit clearer from the overall perspective.

Still question - suggestions: hit reply - I'll do my best to dive deeper into explanations.

Good night,


Tom 

-- 
Thomas Müller                 E-Mail: thomas.mueller at tmit.eu


Am Donnerstag, dem 19.07.2012 um 11:46 schrieb Deepak Mittal:
> I would like to know more about CI. I went through wikipedia page but it
> doesn't explain much working.
> 
> On Thu, Jul 19, 2012 at 2:50 PM, Thomas Müller <thomas.mueller at tmit.eu>wrote:
> 
> > Dear ownCloud developers,
> >
> > with pleasure and honor I'd like to officially announce that we have a
> > continuous integration server for ownCloud now:
> >
> > http://ci.tmit.eu
> >
> > I assume you already know how ci works - if not speak up, I'll happily
> > describe it in a second email.
> >
> > Let me quickly describe which jobs are available:
> >
> > ownCloud-Android:
> >   This is the android client for ownCloud based on master from
> > https://gitorious.org/owncloud/android-devel
> >   The Jenkins job is building signed the signed apk, which can be
> > installed right away.
> >
> > owncloud-Mirall and csync-owncloud:
> >   This is our desktop client - currently we just perform the compilation
> > run on both.
> >   The code is taken from master from https://gitorious.org/owncloud/miralland
> >   from dav from git://git.csync.org/users/freitag/csync.git
> >   TODO: maybe direct push to OBS (devel project) to build packages for
> > various distributions (including mingw)
> >
> > ownCloud-Server(master):
> >   This is ownCloud server taken from master from
> > https://gitorious.org/owncloud/owncloud.
> >   This is for sure the most complex job as it performs:
> >     - php syntax validation
> >     - jslint (http://www.jslint.com/)
> >     - php Mess Detector (http://phpmd.org/)
> >     - php Code Sniffer (http://pear.php.net/package/PHP_CodeSniffer/)
> >     - some code metric analysis (phploc and pdepends)
> >     - and finally: execution of the SimpleTest test suite on sqlite, mysql
> > and postgres!
> >   TODO:
> >     - the rulesets for PHP Code Sniffer have to be defined (Jörn already
> > sent a mail last night - THX for that)
> >     - jslint doesn't like our code ;-/ - is it us or jslint. I'd be happy
> > to get some feedback from the JavaScript hackers in the community
> >     - Code coverage for the test suite has to be generated
> >     - duplicate this job for all stable branches
> >
> > ownCloud-tx:
> >   This job has just been started. The idea is to sync the translations
> > every night.
> >
> > On #owncloud-dev you'll get notifications about successful and failed
> > builds.
> >
> > Feel free to get back to me in case of question and suggestions - feedback
> > is more than welcome.
> >
> > Take care,
> >
> >
> > Tom aka DeepDiver
> > --
> > Thomas Müller                 E-Mail: thomas.mueller at tmit.eu
> >
> > _______________________________________________
> > Owncloud mailing list
> > Owncloud at kde.org
> > https://mail.kde.org/mailman/listinfo/owncloud
> >
> 
> 
> 
> -- 
> Regards,
> Deepak Mittal,
> Twitter - @dpacmittal



More information about the Owncloud mailing list