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

Philip Lowman philip at yhbt.com
Wed Feb 17 18:50:19 EST 2010


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.

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.

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.

Thanks,
tyler

On Fri, Dec 04, 2009 at 01:07:23PM -0500, Bill Hoffman wrote:
> Tyler Roscoe wrote:
> The build scripts for CMake can be found on CDash itself, for example:
>
> http://www.cdash.org/CDash/viewNotes.php?buildid=485762
>
> For each dashboard on the CMake dashboard if you click on the notes for
> the build you can see the script that was used to drive the build.
>
> Here is the .bat file that is run for a scheduled task on that machine:
>
>
> $ cat dash2win64.bat
> setlocal
> rem Update clapack driver script from clapck
> pushd c:\Dashboards\clapack
> svn up clapack_build.cmake
> rem Run the clapack driver script
> "c:\Program Files (x86)\CMake 2.8\bin\ctest.exe" -C Release -S
> clapack_build.cmake -VV -O clapack.log
> popd
> endlocal
>
> call C:\cygwin\bin\bash.exe --login
> c:/Dashboards/DashboardScripts/dash2win64cygwin.sh
>
> "c:\Program Files (x86)\CMake 2.8\bin\ctest.exe" -C Release -S
> dash2Win64_cmake_vs10.cmake -O cmake_vs10.log
> "c:\Program Files (x86)\CMake 2.8\bin\ctest.exe" -C Release -S
> dash2Win64_cmake_vs10_x64.cmake -O cmake_vs10_x64.log
>
> setlocal
> call "C:\Program Files (x86)\Microsoft Visual Studio
> 10.0\VC\bin\vcvars32.bat"
> "c:\Program Files (x86)\CMake 2.8\bin\ctest.exe" -C Release -S
> dash2Win64_cmake_nmake10.cmake -O cmake_nmake10.log
> endlocal
>
> setlocal
> call "C:\Program Files (x86)\Microsoft Visual Studio
> 10.0\VC\bin\amd64\vcvars64.bat"
> "c:\Program Files (x86)\CMake 2.8\bin\ctest.exe" -C Release -S
> dash2Win64_cmake_nmake10_x64.cmake -O cmake_nmake10_x64.log
> endlocal
>
> "c:\Program Files (x86)\CMake 2.8\bin\ctest.exe" -C Release -S
> dash2win64_libarchive_vs9.cmake -VV > libarchive_vs9.log 2>&1
> "c:\Program Files (x86)\CMake 2.9\bin\ctest.exe" -C Release -S
> dash2win64_cmake_icl11_32.cmake -VV > cmake_icl11_32.log 2>&1
> "c:\Program Files (x86)\CMake 2.9\bin\ctest.exe" -C Release -S
> dash2win64_cmake_icl11_64.cmake -VV > cmake_icl11_64.log 2>&1
_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at:
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20100217/45b40b52/attachment.htm>


More information about the CMake mailing list