TubeTK/Dashboard Scripts: Difference between revisions

From KitwarePublic
Jump to navigationJump to search
No edit summary
No edit summary
Line 57: Line 57:
  git push
  git push


Setup a recurrent nightly job.
=== Setup a recurrent nightly job ===
* On Linux
  crontab -e
  crontab -e
Add the following line to the crontab, but please change the start minute (20) and the start hour (0) to different values to avoid simultaneous downloads from multiple machines.
Add the following line to the crontab, but please change the start minute (20) and the start hour (0) to different values to avoid simultaneous downloads from multiple machines.
  20 0 * * * /home/me/src/dashboards/TubeTK_Nightly.sh
  20 0 * * * /home/me/src/dashboards/TubeTK_Nightly.sh


    # On Windows, use the task scheduler to run your TubeTK_Nightly.bat
* On Windows, use the task scheduler to run your TubeTK_Nightly.bat script.
    # script.
 
== Initialize local configuration file ==
 
Example configuration files (i.e., the configuration files used by our dashboard machines) can be downloaded via git:
 
  git clone -b dashboard http://tubetk.org/TubeTK.git TubeTK_Dashboards
 
The configuration file "<MachineName>_TubeTK.cmake" belongs at the top of the Dashboards directory.  For example,
Dashboards/MyMachine_TubeTK.cmake
 
=== Linux ===
 
  cp TubeTK_Dashboards/EXAMPLE_LINUX.cmake MyMachine_TubeTK.cmake
 
Note that a single configuration file can control Nightly, Continuous, and Experimental build options.
 
=== Windows ===
 
  cp TubeTK_Dashboards/EXAMPLE_Windows.cmake MyMachine_TubeTK.cmake
 
== Edit local configuration file ==
 
These dashboard files have two parts.  The first part contains commonly changed variables.  The second part is for advanced users only.
 
=== Linux: Commonly changed variables ===
 
set( SITE_NAME "Krull.Kitware" )
set( SITE_PLATFORM "Linux_64" )
set( SITE_BUILD_TYPE "Release" )
set( SITE_CTEST_MODE "Experimental" ) # Experimental, Continuous, or Nightly
set( SITE_CMAKE_GENERATOR "Unix Makefiles" )
set( TUBETK_GIT_REPOSITORY "git@tubetk.org:TubeTK.git" )
set( TUBETK_SOURCE_DIR "/home/aylward/src/TubeTK" )
set( TUBETK_BINARY_DIR "/home/aylward/src/TubeTK-${SITE_BUILD_TYPE}" )
set( ENV{DISPLAY} ":0" )
set( SITE_MAKE_COMMAND "make -j5" )
set( SITE_CMAKE_COMMAND "/usr/local/bin/cmake" )
set( SITE_QMAKE_COMMAND "/usr/bin/qmake" )
set( SITE_CTEST_COMMAND "/usr/local/bin/ctest -j5" )
set( SITE_MEMORYCHECK_COMMAND "/usr/bin/valgrind" )
set( SITE_COVERAGE_COMMAND "/usr/bin/gcov" )
set( SITE_KWSTYLE_DIR "/usr/local/bin" )
set( SITE_GIT_COMMAND "/usr/bin/git" )
set( SITE_SVN_COMMAND "/usr/bin/svn" )
set( SITE_EXPERIMENTAL_BUILD ON )
set( SITE_EXPERIMENTAL_TEST ON )
set( SITE_EXPERIMENTAL_COVERAGE OFF )
set( SITE_EXPERIMENTAL_MEMORY OFF )
set( SITE_EXPERIMENTAL_PACKAGE OFF )
set( SITE_EXPERIMENTAL_UPLOAD OFF )
set( SITE_EXPERIMENTAL_STYLE OFF )
set( SITE_CONTINUOUS_BUILD ON )
set( SITE_CONTINUOUS_TEST ON )
set( SITE_CONTINUOUS_COVERAGE OFF )
set( SITE_CONTINUOUS_MEMORY OFF )
set( SITE_CONTINUOUS_PACKAGE ON )
set( SITE_CONTINUOUS_UPLOAD ON )
set( SITE_CONTINUOUS_STYLE OFF )
set( SITE_NIGHTLY_BUILD ON )
set( SITE_NIGHTLY_TEST ON )
set( SITE_NIGHTLY_COVERAGE ON )
set( SITE_NIGHTLY_MEMORY ON )
set( SITE_NIGHTLY_PACKAGE ON )
set( SITE_NIGHTLY_UPLOAD ON )
set( SITE_NIGHTLY_STYLE ON )
 
=== Windows: Commonly changed variables ===
 
set( SITE_NAME "Ginger.Aylward.Org" )
set( SITE_PLATFORM "WindowsXP-VS2010_32" )
set( SITE_BUILD_TYPE "Release" )
set( SITE_CTEST_MODE "Experimental" ) # Experimental, Continuous, or Nightly
set( SITE_CMAKE_GENERATOR "Visual Studio 10" )
set( TUBETK_GIT_REPOSITORY "git://tubetk.org/TubeTK.git" )
set( TUBETK_SOURCE_DIR "C:\\Users\\aylward\\src\\TubeTK" )
set( TUBETK_BINARY_DIR "C:\\Users\\aylward\\src\\TubeTK ${SITE_BUILD_TYPE}" )
set( SITE_MAKE_COMMAND "${CTEST_BUILD_COMMAND}" )
set( SITE_CMAKE_COMMAND "C:\\Program Files\\CMake 2.8\\bin\\cmake" )
set( SITE_QMAKE_COMMAND "C:\\Qt\\4.6.3\\bin\\qmake" )
set( SITE_CTEST_COMMAND "C:\\Program Files\\CMake 2.8\\bin\\ctest" )
set( SITE_MEMORYCHECK_COMMAND "" )
set( SITE_COVERAGE_COMMAND "" )
set( SITE_KWSTYLE_DIR "" )
set( SITE_GIT_COMMAND "C:\\Program Files\\Git\\bin\\git" )
set( SITE_SVN_COMMAND "C:\\Program Files\\CollabNet\\Subversion Client\\svn" )
set( SITE_EXPERIMENTAL_BUILD ON )
set( SITE_EXPERIMENTAL_TEST ON )
set( SITE_EXPERIMENTAL_COVERAGE OFF ) # Linux only
set( SITE_EXPERIMENTAL_MEMORY OFF )  # Linux only
set( SITE_EXPERIMENTAL_PACKAGE OFF )
set( SITE_EXPERIMENTAL_UPLOAD OFF )
set( SITE_EXPERIMENTAL_STYLE OFF )    # Linux only
set( SITE_CONTINUOUS_BUILD ON )
set( SITE_CONTINUOUS_TEST ON )
set( SITE_CONTINUOUS_COVERAGE OFF ) # Linux only
set( SITE_CONTINUOUS_MEMORY OFF )  # Linux only
set( SITE_CONTINUOUS_PACKAGE ON )
set( SITE_CONTINUOUS_UPLOAD ON )
set( SITE_CONTINUOUS_STYLE OFF )    # Linux only
set( SITE_NIGHTLY_BUILD ON )
set( SITE_NIGHTLY_TEST ON )
set( SITE_NIGHTLY_COVERAGE OFF ) # Linux only
set( SITE_NIGHTLY_MEMORY OFF )  # Linux only
set( SITE_NIGHTLY_PACKAGE ON )
set( SITE_NIGHTLY_UPLOAD ON )
set( SITE_NIGHTLY_STYLE OFF )    # Linux only
 
== Setup cron job ==
 
=== Linux ===
 
crontab -l
0 23  *  *  *  /home/kitware/Dashboards/cmake-2.8.8/bin/ctest -V -VV -S /home/kitware/Dashboards/MyMachine_TubeTK.cmake -O /home/kitware/Dashboards/MyMachine_TubeTK.log
 
=== Windows ===
 
Setup "Scheduled Jobs" to execute an appropriate variant of the following command:
 
"C:/Program Files(x86)/CMake 2.8/bin/ctest" -V -VV -S "C:/Users/aylward/src/Dashboards/MyMachine_TubeTK.cmake" -O C:/Users/aylward/src/Dashboards/MyMachine_TubeTK.log

Revision as of 18:56, 14 July 2012

Overview

TubeTK uses a novel configuration-file based method for installing dashboard machines. In general, you will perform an initial download of TubeTK, copy an example configuration file to the level above the TubeTK source, edit that file as appropriate, and then setup cron jobs to call script files that are distributed with TubeTK and that are controlled by your configuration file.

TubeTK's current dashboard is available at: http://open.cdash.org/index.php?project=TubeTK

Tutorial

Assumptions

1. The top-level dashboard directory is at "~/src/dashboards" This tutorial will help you create directory structure with the following hierarchy

 ~/src/dashboards/TubeTK
 ~/src/dashboards/TubeTK-${BUILD_TYPE}

where ${BUILD_TYPE} is one of Release, Debug, RelWithDebInfo, ...

2. The machine being configured is called "MyMachine"

Background

  • You must have CMake 2.8.8 or greater installed to run a TubeTK dashboard system.
  • You must have Qt 4.7 or greater installed to compile TubeTK
  • This tutorial assumes you have some knowledge of CMake and CTest

Checkout a new TubeTK for your dashboard

Go to the top level of your dashboard clients

cd ~/src/dashboards

Get a copy of all dashboard scripts, include some example scripts

git clone -b dashboard http://tubetk.org/TubeTK.git TubeTK_Dashboards

The following script will be used to update and launch your dashboard client every night. WINDOWS: Use the corresponding .bat file if you are doing this on Windows

cp TubeTK_Dashboards/EXAMPLE_TubeTK_Nightly.sh TubeTK_Nightly.sh

Setup your machine's parameters as described in the file

vi TubeTK_Nightly.sh

Create a specific set of parameters for your dashboard machine

cd TubeTK_Dashboards
cp EXMPLE_Linux.cmake MyMachine_TubeTK_Nightly.cmake

On Windows, copy the corresponding EXAMPLE_Windows.cmake file

Setup the parameters as specified in that file

vi MyMachine_TubeTK_Nightly.cmake

By adding your script to the repo, your dashboard machine can be updated without having to log into it.

git add MyMachine_TubeTK_Nightly.cmake
git commit -m "ENH: Initial setup for MyMachine"

Make sure you have the latest copy of the TubeTK_Dashboard directory and then submit your changes to the git repo

git pull
git push

Setup a recurrent nightly job

  • On Linux
crontab -e

Add the following line to the crontab, but please change the start minute (20) and the start hour (0) to different values to avoid simultaneous downloads from multiple machines.

20 0 * * * /home/me/src/dashboards/TubeTK_Nightly.sh
  • On Windows, use the task scheduler to run your TubeTK_Nightly.bat script.