[eigen] Continuous integration builds |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/eigen Archives
]
- To: eigen <eigen@xxxxxxxxxxxxxxxxxxx>
- Subject: [eigen] Continuous integration builds
- From: Gael Guennebaud <gael.guennebaud@xxxxxxxxx>
- Date: Fri, 5 Jul 2013 23:23:13 +0200
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:from:date:message-id:subject:to:content-type :content-transfer-encoding; bh=GI6gX1eq1vHpRmadkBfc+dvoVSBI8mniB+sq9fCUstc=; b=hR+bM9VDT8XQ6xm5ho9g84X5wFYGcRcw71Yk4zfuZFwA3LdVoibCTtabOnw7+gzcLb hsaII5HDj59NaX1DeHyD7IM5MaWKbciH7HcxdGiLW5qOfUILux/z0y+mi7Hnoo+L9D/m 0+nVDVog5ZyGsYy9scTiCFJmNbUViWlSwC+ImlutPk9F25fQRk5k5GpoapXxHAWq2Rpo r6i9xfPdh2Iqr2yIkXQEi6umlYdnJxhM0IZaCADfng3/5beD4q7RP78tqvkrh0oY4RrQ Zt3XhWBZAw+7zM74+y4wZL6CTtM4iHQlHdLiQ+tjL5wFF1YNYrt+wKTLZvIVtv0F1ANd BdwQ==
Hi,
Last week I've started to setup a continuous integration (CI)
environment using https://ci.inria.fr (based on jenkins and
cloudstack).
Currently the entire unit tests are built and executed after each
commit are results rae reported on our cdash under the "Experimental"
section: http://manao.inria.fr/CDash/index.php?project=Eigen&display=project.
Currently, only two configurations are tested: MSVC-11/Win7, and
gcc-4.6/Linux.
As you can see, a VC build takes about 3h that is too much for that
purpose. Since I want to keep complete nightly builds, we could
imagine a cmake option that would enable only a subset of tests. For
instance, in most cases it is rather redundant to test both floats and
doubles for all tests. Ideally, we would even like to analyse the diff
with the previous build and activate only the relevant tests. However,
both sounds rather complicated.
So what about a simple random strategy? We could add a cmake parameter
taking a percentage of tests that has to be enabled, and the unit
tests (at the splited level) would be randomly picked each time cmake
is run. However, how to implement this random selection within cmake
in a cross platform manner?
There is also the question about the choice of the platforms/compilers
that are the most relevant? Again, we cannot test everything
every-times! Clearly, MSVC is a must-have since most of us are Linux
developers.
Finally, Jenkins allows to do much more than simply building and
running our tests, so if there Jenkins experts here, I'm open to
suggestions!
thanks,
Gaël.