[CMake] CTest/CDash and miscellaneous post-build steps (was Re: continuous integration with CMake)

Tyler Roscoe tyler at cryptio.net
Wed Feb 17 19:05:48 EST 2010


On Wed, Feb 17, 2010 at 06:50:19PM -0500, Philip Lowman wrote:
> I've been meaning to add something like that to our nightly builds just
> using shell/batch scripting.  You should be able to set CMAKE_PREFIX_PATH in
> the initial cache and then just make install or use the vs command line app
> to run the INSTALL project after calling ctest -S.

I'm playing with this now. It failed on my last run but I don't know why
because CTest only captures warnings and errors from the build, not the
full build output. (Does anyone know if there is a way to get this info
without relying on >build.log 2>&1 at the end of my ctest -S command
line?)

> Not sure on how to detect build failure via ctest directly.  For us if the
> build fails we're not going to care about the contents of the install
> directory.

Exactly, which is why I want to avoid the time involved in copying the
build and the confusion involved in having a build in the archives which
did not pass the unit tests/component tests.

Thanks,
tyler

> On Feb 17, 2010 4:58 PM, "Tyler Roscoe" <tyler at cryptio.net> wrote:
> 
> Next question:
> 
> - CDash and miscellaneous post-build steps
> 
> Now that I've got Continuous Integration up and running with CDash, I'd
> like to publish my Continuous builds to a central build archive so
> developers and testers can use them.
> 
> I can write post-build rules to copy my _results directory to the build
> archive (or mess with CMAKE_INSTALL_PREFIX and the INSTALL target), but
> then the build will be copied as soon as compiling/linking are finished.
> I would prefer to run the tests first and only copy the build if it
> passes all the tests.
> 
> I thought of doing the copy from my continuous integration script
> itself. I could copy after a successful build by making use of the
> NUMBER_ERRORS and NUMBER_WARNINGS parameters to ctest_build(). I was
> hoping I could do the same after ctest_test(), but that command doesn't
> seem to have anything like NUMBER_ERRORS that would let me evaluate if
> the tests completed successfully before performing the copy.
> 
> How do other people handle this?
> 
> I'd like to do more than just publish the builds (run the setup.exe and
> make sure it works, compare what is installed by setup.exe against a
> known-good install manifest, kick off component tests on another machine
> with this newly-generated build, etc.) but figuring out a method for
> publishing builds would be a great start.


More information about the CMake mailing list