Forráskód Böngészése

Travis configuration scripts.

Sascha Zelzer 10 éve
szülő
commit
18d5f0a363

+ 1 - 0
.gitignore

@@ -1,5 +1,6 @@
 # Ignore all dotfiles...
 .*
+!.travis.yml
 
 # Ignore all back-up files...
 *~

+ 31 - 0
.travis.yml

@@ -0,0 +1,31 @@
+language: cpp
+
+compiler:
+  - gcc
+
+branches:
+  only:
+    - travis-integration
+
+env: DISPLAY=:9 CTK_QT_VERSION=4
+
+before_install:
+  - sudo add-apt-repository --yes ppa:ubuntu-sdk-team/ppa
+  - sudo apt-get update -qq
+  - sudo apt-get install -y chrpath libqt4-dev qt4-dev-tools libvtk5-qt4-dev
+  # - sudo apt-get install -y libqt5webkit5-dev qtcore5-dev qtwidgets5-dev qttools5-dev-tools libsqlite3-dev
+  - sudo apt-get install -y xpra xserver-xorg-video-dummy
+
+before_script:
+  - wget -P /tmp http://www.cmake.org/files/v2.8/cmake-2.8.10.tar.gz
+  - tar xz -C /tmp -f /tmp/cmake-2.8.10.tar.gz
+  - cd /tmp/cmake-2.8.10 && ./configure --prefix=/usr/local -- -DCMAKE_USE_OPENSSL:BOOL=ON
+  - cd /tmp/cmake-2.8.10 && make -j4 && sudo make install
+  - xpra --xvfb="Xorg +extension GLX -config ${HOME}/build/commontk/CTK/Applications/Testing/dummy.xorg.conf -logfile ${HOME}/.xpra/xorg.log"  start :9
+
+script: ctest -V -S ${HOME}/build/commontk/CTK/CMake/ctkTravisDashboardScript.cmake
+
+after_script:
+  - xpra stop :9
+  - cat ${HOME}/build/commontk/CTK-Superbuild-Release-experimental/DCMTK-build/CMakeCache.txt
+  - "cat ~/.xpra/*"

+ 131 - 0
Applications/Testing/dummy.xorg.conf

@@ -0,0 +1,131 @@
+# This file is used to setup a dummy X server for testing on http://travis-ci.org
+# See config file ".travis.yml"
+
+##Xdummy:##
+Section "ServerFlags"
+  Option "DontVTSwitch" "true"
+  Option "AllowMouseOpenFail" "true"
+  Option "PciForceNone" "true"
+  Option "AutoEnableDevices" "false"
+  Option "AutoAddDevices" "false"
+EndSection
+
+
+##Xdummy:##
+Section "InputDevice"
+  Identifier "NoMouse"
+  Option "CorePointer" "true"
+  Driver "void"
+EndSection
+
+Section "InputDevice"
+  Identifier "NoKeyboard"
+  Option "CoreKeyboard" "true"
+  Driver "void"
+EndSection
+
+##Xdummy:##
+Section "Device"
+  Identifier "Videocard0"
+  Driver "dummy"
+  #VideoRam 4096000
+  VideoRam 256000
+EndSection
+
+##Xdummy:##
+Section "Monitor"
+  Identifier "Monitor0"
+  HorizSync   10.0 - 300.0
+  VertRefresh 10.0 - 200.0
+  DisplaySize 4335 1084
+  #The following modeline is invalid (calculator overflowed):
+  #Modeline "32000x32000@0" -38917.43 32000 32032 -115848 -115816 32000 32775 32826 33601
+  Modeline "16384x8192@10" 2101.93 16384 16416 24400 24432 8192 8390 8403 8602
+  Modeline "8192x4096@10" 424.46 8192 8224 9832 9864 4096 4195 4202 4301
+  Modeline "5120x3200@10" 199.75 5120 5152 5904 5936 3200 3277 3283 3361
+  Modeline "3840x2880@10" 133.43 3840 3872 4376 4408 2880 2950 2955 3025
+  Modeline "3840x2560@10" 116.93 3840 3872 4312 4344 2560 2622 2627 2689
+  Modeline "3840x2048@10" 91.45 3840 3872 4216 4248 2048 2097 2101 2151
+  Modeline "2048x2048@10" 49.47 2048 2080 2264 2296 2048 2097 2101 2151
+  Modeline "2560x1600@10" 47.12 2560 2592 2768 2800 1600 1639 1642 1681
+  Modeline "1920x1200@10" 26.28 1920 1952 2048 2080 1200 1229 1231 1261
+  Modeline "1920x1080@10" 23.53 1920 1952 2040 2072 1080 1106 1108 1135
+  Modeline "1680x1050@10" 20.08 1680 1712 1784 1816 1050 1075 1077 1103
+  Modeline "1600x900@20" 33.92 1600 1632 1760 1792 900 921 924 946
+  Modeline "1440x900@20" 30.66 1440 1472 1584 1616 900 921 924 946
+  Modeline "1360x768@20" 24.49 1360 1392 1480 1512 768 786 789 807
+  #common resolutions for android devices (both orientations):
+  Modeline "800x1280@20" 25.89 800 832 928 960 1280 1310 1315 1345
+  Modeline "1280x800@20" 24.15 1280 1312 1400 1432 800 819 822 841
+  Modeline "720x1280@25" 30.22 720 752 864 896 1280 1309 1315 1345
+  Modeline "1280x720@25" 27.41 1280 1312 1416 1448 720 737 740 757
+  Modeline "768x1024@25" 24.93 768 800 888 920 1024 1047 1052 1076
+  Modeline "1024x768@25" 23.77 1024 1056 1144 1176 768 785 789 807
+  Modeline "600x1024@25" 19.90 600 632 704 736 1024 1047 1052 1076
+  Modeline "1024x600@25" 18.26 1024 1056 1120 1152 600 614 617 631
+  Modeline "536x960@25" 16.74 536 568 624 656 960 982 986 1009
+  Modeline "960x536@25" 15.23 960 992 1048 1080 536 548 551 563
+  Modeline "600x800@25" 15.17 600 632 688 720 800 818 822 841
+  Modeline "800x600@25" 14.50 800 832 880 912 600 614 617 631
+  Modeline "480x854@25" 13.34 480 512 560 592 854 873 877 897
+  Modeline "848x480@25" 12.09 848 880 920 952 480 491 493 505
+  Modeline "480x800@25" 12.43 480 512 552 584 800 818 822 841
+  Modeline "800x480@25" 11.46 800 832 872 904 480 491 493 505
+  Modeline "320x480@50" 10.73 320 352 392 424 480 490 494 505
+  Modeline "480x320@50" 9.79 480 512 544 576 320 327 330 337
+  Modeline "240x400@50" 6.96 240 272 296 328 400 408 412 421
+  Modeline "400x240@50" 6.17 400 432 448 480 240 245 247 253
+  Modeline "240x320@50" 5.47 240 272 288 320 320 327 330 337
+  Modeline "320x240@50" 5.10 320 352 368 400 240 245 247 253
+  #resolutions for android devices (both orientations)
+  #minus the status bar
+  #38px status bar (and width rounded up)
+  Modeline "800x1242@20" 25.03 800 832 920 952 1242 1271 1275 1305
+  Modeline "1280x762@20" 22.93 1280 1312 1392 1424 762 780 783 801
+  Modeline "720x1242@25" 29.20 720 752 856 888 1242 1271 1276 1305
+  Modeline "1280x682@25" 25.85 1280 1312 1408 1440 682 698 701 717
+  Modeline "768x986@25" 23.90 768 800 888 920 986 1009 1013 1036
+  Modeline "1024x730@25" 22.50 1024 1056 1136 1168 730 747 750 767
+  Modeline "600x986@25" 19.07 600 632 704 736 986 1009 1013 1036
+  Modeline "1024x562@25" 17.03 1024 1056 1120 1152 562 575 578 591
+  Modeline "536x922@25" 16.01 536 568 624 656 922 943 947 969
+  Modeline "960x498@25" 14.09 960 992 1040 1072 498 509 511 523
+  Modeline "600x762@25" 14.39 600 632 680 712 762 779 783 801
+  Modeline "800x562@25" 13.52 800 832 880 912 562 575 578 591
+  Modeline "480x810@25" 12.59 480 512 552 584 810 828 832 851
+  Modeline "848x442@25" 11.09 848 880 920 952 442 452 454 465
+  Modeline "480x762@25" 11.79 480 512 552 584 762 779 783 801
+  Modeline "800x442@25" 10.51 800 832 864 896 442 452 454 465
+  #32px status bar (no need for rounding):
+  Modeline "320x448@50" 9.93 320 352 384 416 448 457 461 471
+  Modeline "480x288@50" 8.75 480 512 544 576 288 294 297 303
+  #24px status bar:
+  Modeline "240x376@50" 6.49 240 272 296 328 376 384 387 395
+  Modeline "400x216@50" 5.50 400 432 448 480 216 220 222 227
+  Modeline "240x296@50" 5.02 240 272 288 320 296 302 305 311
+  Modeline "320x216@50" 4.55 320 352 368 400 216 220 222 227
+EndSection
+
+##Xdummy:##
+Section "Screen"
+  Identifier "Screen0"
+  Device "Videocard0"
+  Monitor "Monitor0"
+  DefaultDepth 24
+  SubSection "Display"
+    Viewport 0 0
+    Depth 24
+    Modes "32000x32000" "16384x8192" "8192x4096" "5120x3200" "3840x2880" "3840x2560" "3840x2048" "2048x2048" "2560x1600" "1920x1440" "1920x1200" "1920x1080" "1600x1200" "1680x1050" "1600x900" "1400x1050" "1440x900" "1280x1024" "1366x768" "1280x800" "1024x768" "1024x600" "800x600" "320x200"
+    #Virtual 32000 32000
+    #Virtual 16384 8192
+    #Virtual 8192 4096
+    Virtual 1920 1440
+  EndSubSection
+EndSection
+
+Section "ServerLayout"
+  Identifier   "dummy_layout"
+  Screen       "screen0"
+  InputDevice  "NoMouse"
+  InputDevice  "NoKeyboard"
+EndSection

+ 8 - 0
CMake/CTestCustom.cmake.in

@@ -27,6 +27,8 @@ SET(CTEST_CUSTOM_MEMCHECK_IGNORE
 SET(CTEST_CUSTOM_ERROR_MATCH
   ${CTEST_CUSTOM_ERROR_MATCH}
   "CMake Error[ :]"
+  "No rule to make target"
+
   )
 
 SET(CTEST_CUSTOM_WARNING_MATCH
@@ -37,6 +39,12 @@ SET(CTEST_CUSTOM_WARNING_MATCH
 SET(CTEST_CUSTOM_WARNING_EXCEPTION
   ${CTEST_CUSTOM_WARNING_EXCEPTION}
 
+  # external projects
+  "Note: checking out"
+  "@CTK_BINARY_DIR@/DCMTK"
+  "@CTK_BINARY_DIR@/GDCM"
+  "@CTK_BINARY_DIR@/ITK"
+
   # kwstyle suppressions
   "[Kk][Ww][Ss]tyle.*kws.*cxx"
   "[Kk][Ww][Ss]tyle.*kws.*h"

+ 137 - 0
CMake/ctkTravisDashboardScript.cmake

@@ -0,0 +1,137 @@
+#
+# OS: Travis CI Linux
+# Hardware: x86_64 GNU/Linux VM
+# GPU: NA
+#
+
+# Note: The specific version and processor type of this machine should be reported in the 
+# header above. Indeed, this file will be send to the dashboard as a NOTE file. 
+
+cmake_minimum_required(VERSION 2.8)
+
+#
+# For additional information, see http://www.commontk.org/index.php/Dashboard_setup
+#
+
+set(CTK_QT_VERSION $ENV{CTK_QT_VERSION})
+if(NOT CTK_QT_VERSION)
+  set(CTK_QT_VERSION 4)
+endif()
+
+if(CTK_QT_VERSION EQUAL "4")
+  set(QT_QMAKE_EXECUTABLE "/usr/bin/qmake")
+  set(MY_QT_VERSION 4.8.1)
+else()
+  set(MY_QT_VERSION 5.x)
+endif()
+
+#
+# Dashboard properties
+#
+set(MY_OPERATING_SYSTEM "Ubuntu-12.04")
+set(MY_COMPILER "g++4.6.3")
+set(CTEST_SITE "travis-ci") # for example: mymachine.kitware, mymachine.dkfz, ...
+set(CTEST_DASHBOARD_ROOT "$ENV{HOME}/build/commontk")
+set(CTEST_CMAKE_GENERATOR "Unix Makefiles")
+
+#
+# Dashboard options
+#
+set(WITH_KWSTYLE FALSE)
+set(WITH_MEMCHECK FALSE)
+set(WITH_COVERAGE TRUE)
+set(WITH_DOCUMENTATION FALSE)
+#set(DOCUMENTATION_ARCHIVES_OUTPUT_DIRECTORY ) # for example: $ENV{HOME}/Projects/Doxygen
+set(CTEST_BUILD_CONFIGURATION "Release")
+set(CTEST_TEST_TIMEOUT 500)
+set(CTEST_BUILD_FLAGS "-j4") # Use multiple CPU cores to build
+set(CTEST_PARALLEL_LEVEL 4) # Number of tests running in parallel
+
+# experimental: 
+#     - run_ctest() macro will be called *ONE* time
+#     - binary directory will *NOT* be cleaned
+# continuous: 
+#     - run_ctest() macro will be called EVERY 5 minutes ... 
+#     - binary directory will *NOT* be cleaned
+#     - configure/build will be executed *ONLY* if the repository has been updated
+# nightly: 
+#     - run_ctest() macro will be called *ONE* time
+#     - binary directory *WILL BE* cleaned
+set(SCRIPT_MODE "experimental") # "experimental", "continuous", "nightly"
+
+#
+# Project specific properties
+#
+set(CTEST_SOURCE_DIRECTORY "${CTEST_DASHBOARD_ROOT}/CTK")
+set(CTEST_BINARY_DIRECTORY "${CTEST_DASHBOARD_ROOT}/CTK-Superbuild-${CTEST_BUILD_CONFIGURATION}-${SCRIPT_MODE}")
+
+# Additional CMakeCache options - For example:
+# CTK_LIB_Widgets:BOOL=ON
+# CTK_APP_ctkDICOM:BOOL=ON
+
+set(ADDITIONNAL_CMAKECACHE_OPTION "
+CTK_QT_VERSION:STRING=${CTK_QT_VERSION}
+CTK_BUILD_ALL:BOOL=ON
+CTK_BUILD_EXAMPLES:BOOL=ON
+CTK_USE_SYSTEM_VTK:BOOL=ON
+")
+
+# List of test that should be explicitly disabled on this machine
+set(TEST_TO_EXCLUDE_REGEX "")
+
+# set any extra environment variables here
+#set(ENV{DISPLAY} ":9")
+
+find_program(CTEST_COVERAGE_COMMAND NAMES gcov)
+find_program(CTEST_MEMORYCHECK_COMMAND NAMES valgrind)
+find_program(CTEST_GIT_COMMAND NAMES git)
+
+#
+# Git repository - Overwrite the default value provided by the driver script
+#
+# set(GIT_REPOSITORY http://github.com/YOURUSERNAME/CTK.git)
+
+##########################################
+# WARNING: DO NOT EDIT BEYOND THIS POINT #
+##########################################
+
+set(CTEST_NOTES_FILES "${CTEST_SCRIPT_DIRECTORY}/${CTEST_SCRIPT_NAME}")
+
+#
+# Project specific properties
+#
+set(CTEST_PROJECT_NAME "CTK")
+set(CTEST_BUILD_NAME "${MY_OPERATING_SYSTEM}-${MY_COMPILER}-QT${MY_QT_VERSION}-${CTEST_BUILD_CONFIGURATION}")
+
+#
+# Display build info
+#
+message("site name: ${CTEST_SITE}")
+message("build name: ${CTEST_BUILD_NAME}")
+message("script mode: ${SCRIPT_MODE}")
+message("coverage: ${WITH_COVERAGE}, memcheck: ${WITH_MEMCHECK}")
+
+#
+# Convenient macro allowing to download a file
+#
+macro(downloadFile url dest)
+  file(DOWNLOAD ${url} ${dest} STATUS status)
+  list(GET status 0 error_code)
+  list(GET status 1 error_msg)
+  if(error_code)
+    message(FATAL_ERROR "error: Failed to download ${url} - ${error_msg}")
+  endif()
+endmacro()
+
+#
+# Download and include dashboard driver script 
+#
+set(url http://commontk.org/ctkDashboardDriverScript.cmake)
+set(dest ${CTEST_SCRIPT_DIRECTORY}/${CTEST_SCRIPT_NAME}.driver)
+downloadfile(${url} ${dest})
+include(${dest})
+
+set(travis_url "/tmp/travis.url")
+file(WRITE ${travis_url} "https://travis-ci.org/commontk/CTK/builds/$ENV{TRAVIS_BUILD_ID}")
+ctest_upload(FILES ${travis_url})
+file(REMOVE ${travis_url})