From d8824733964e7a7cae116ee6d67f23030a99e545 Mon Sep 17 00:00:00 2001 From: Rashad Kanavath <rashad.kanavath@c-s.fr> Date: Thu, 12 May 2016 17:43:18 +0200 Subject: [PATCH] TEST: auto switch travis to develop and release XDK --- .travis.yml | 22 +------- Utilities/Maintenance/TravisBuild.cmake | 46 ++++++++------- Utilities/Maintenance/TravisBuild.sh | 75 +++++++++++++++++++++++++ 3 files changed, 104 insertions(+), 39 deletions(-) create mode 100755 Utilities/Maintenance/TravisBuild.sh diff --git a/.travis.yml b/.travis.yml index ddb48e3dd1..05a12124f2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,27 +1,11 @@ language: cpp sudo: false +dist: trusty compiler: - clang -addons: - apt: - packages: - - libqt4-dev - - libqtcore4 - - libqtgui4 +cache: false -before_script: - - export MAKE_CMD=/tmp/ninja - - export CMAKE_GEN='Ninja' - - cd /tmp - - wget https://cmake.org/files/v3.4/cmake-3.4.1-Linux-x86_64.tar.gz --no-check-certificate - - tar -xzf cmake-3.4.1-Linux-x86_64.tar.gz - - wget https://github.com/martine/ninja/releases/download/v1.6.0/ninja-linux.zip --no-check-certificate - - unzip ninja-linux.zip - - wget https://www.orfeo-toolbox.org/packages/xdk/OTB-5.2/OTB-5.2.0-xdk-Linux64.run --no-check-certificate - - chmod +x /tmp/OTB-5.2.0-xdk-Linux64.run - - /tmp/OTB-5.2.0-xdk-Linux64.run - -script: /tmp/cmake-3.4.1-Linux-x86_64/bin/ctest -VV -S /home/travis/build/orfeotoolbox/OTB/Utilities/Maintenance/TravisBuild.cmake +script: Utilities/Maintenance/TravisBuild.sh diff --git a/Utilities/Maintenance/TravisBuild.cmake b/Utilities/Maintenance/TravisBuild.cmake index 17ea7eaf12..f5ef0d7fd9 100644 --- a/Utilities/Maintenance/TravisBuild.cmake +++ b/Utilities/Maintenance/TravisBuild.cmake @@ -1,10 +1,24 @@ #TravisBuild.cmake - custom cmake scripts for travis build #before running this script you need to set the below env variables set(ENV{LC_ALL} C) - set(CTEST_PROJECT_NAME "OTB") set(CTEST_BUILD_CONFIGURATION Release) -set(CTEST_DASHBOARD_ROOT "/home/travis/build") +if(NOT DEFINED CTEST_GIT_COMMAND) + find_program(CTEST_GIT_COMMAND NAMES git git.cmd) +endif() +# Just check if required variables are defined. +foreach(req + CTEST_DASHBOARD_ROOT + CMAKE_MAKE_PROGRAM + CTEST_CMAKE_GENERATOR + OTB_INSTALL_DIR + CTEST_COMMAND + ) + if(NOT DEFINED ENV{${req}}) + message(FATAL_ERROR "you must set ${req} environment variable is not defined") + endif() + set(${req} "$ENV{${req}}") +endforeach() set(BUILD_NAME_PREFIX "travis-$ENV{TRAVIS_BUILD_NUMBER}") if(NOT "$ENV{TRAVIS_PULL_REQUEST}" MATCHES "false") @@ -17,22 +31,6 @@ set(CTEST_SITE "travis-ci.org") set(CTEST_SOURCE_DIRECTORY "${CTEST_DASHBOARD_ROOT}/orfeotoolbox/OTB") set(CTEST_BINARY_DIRECTORY "${CTEST_DASHBOARD_ROOT}/orfeotoolbox/build") -if(NOT DEFINED CTEST_GIT_COMMAND) - find_program(CTEST_GIT_COMMAND NAMES git git.cmd) -endif() - -if(DEFINED ENV{MAKE_CMD}) - set(CMAKE_MAKE_PROGRAM "$ENV{MAKE_CMD}") -else() - message(FATAL_ERROR "MAKE_CMD environment variable is not defined") -endif() - -if(DEFINED ENV{CMAKE_GEN}) - set(CTEST_CMAKE_GENERATOR "$ENV{CMAKE_GEN}") -else() - message(FATAL_ERROR "CMAKE_GEN environment variable is not defined") -endif() - set(CTEST_CUSTOM_MAXIMUM_NUMBER_OF_ERRORS 1000) set(CTEST_CUSTOM_MAXIMUM_NUMBER_OF_WARNINGS 300) #set(CTEST_BUILD_FLAGS -j2) @@ -41,13 +39,17 @@ message(STATUS "CTEST_SOURCE_DIRECTORY: ${CTEST_SOURCE_DIRECTORY}") message(STATUS "CTEST_BINARY_DIRECTORY: ${CTEST_BINARY_DIRECTORY}") set(INITIAL_CACHE -"CMAKE_PREFIX_PATH:PATH=/tmp/OTB-5.2.0-xdk-Linux64 +" BUILD_TESTING:BOOL=ON +CMAKE_INSTALL_PREFIX:PATH=${OTB_INSTALL_DIR} CMAKE_MAKE_PROGRAM:FILEPATH=${CMAKE_MAKE_PROGRAM} OTB_USE_OPENCV:BOOL=ON +OTB_USE_LIBSVM:BOOL=ON OTB_USE_MUPARSER:BOOL=ON OTB_USE_MUPARSERX:BOOL=ON OTB_USE_QT4:BOOL=ON +OTB_USE_OPENGL:BOOL=ON +OTB_USE_GLEW:BOOL=ON CMAKE_C_FLAGS:STRING=-Wextra CMAKE_CXX_FLAGS:STRING=-Wextra -Wno-gnu-static-float-init -Wno-\\#warnings CMAKE_BUILD_TYPE=Release" @@ -64,7 +66,11 @@ ctest_read_custom_files(${CTEST_BINARY_DIRECTORY}) ctest_build (BUILD "${CTEST_BINARY_DIRECTORY}" RETURN_VALUE _build_rv) -ctest_test (BUILD "${CTEST_BINARY_DIRECTORY}" INCLUDE New RETURN_VALUE _test_rv) +execute_process( + COMMAND ${CTEST_COMMAND} "-R" "Tu" "." + WORKING_DIRECTORY "${CTEST_BINARY_DIRECTORY}" + ) +#ctest_test (BUILD "${CTEST_BINARY_DIRECTORY}" INCLUDE Tu RETURN_VALUE _test_rv) # if(NOT _configure_rv EQUAL 0 OR NOT _build_rv EQUAL 0) # endif () diff --git a/Utilities/Maintenance/TravisBuild.sh b/Utilities/Maintenance/TravisBuild.sh new file mode 100755 index 0000000000..ac7b40dd5a --- /dev/null +++ b/Utilities/Maintenance/TravisBuild.sh @@ -0,0 +1,75 @@ +#!/usr/bin/env bash + +#variables required +CTEST_COMMAND="/tmp/cmake-3.4.1-Linux-x86_64/bin/ctest" +CMAKE_MAKE_PROGRAM=/tmp/ninja +CTEST_CMAKE_GENERATOR="Ninja" +CTEST_DASHBOARD_ROOT=$HOME/build +WGET=`which wget` +SED=`which sed` + +#develop xdk is used for all branches whose name does not contains release-X.Y +XDK_VERSION="develop" + +if [[ -z "$TRAVIS_BRANCH" ]]; then + TRAVIS_BRANCH='develop' + TRAVIS_BUILD_NUMBER=1 + TRAVIS_PULL_REQUEST='false' + export TRAVIS_BRANCH + export TRAVIS_BUILD_NUMBER + export TRAVIS_PULL_REQUEST + mkdir -p $CTEST_DASHBOARD_ROOT/orfeotoolbox/build + git clone --depth=1 --branch=$TRAVIS_BRANCH https://github.com/orfeotoolbox/OTB +fi + +#if a branch contains release-X.Y then xdk is taken from packages/xdk/OTB-X.Y +if [[ "$TRAVIS_BRANCH" =~ release-* ]]; then + VERSION_SMALL=$(echo $TRAVIS_BRANCH| sed 's/.*release-//'| cut -d'-' -f 1) + XDK_VERSION="OTB-$VERSION_SMALL" +fi + +VERSION_STRING=$($WGET -q -O- "https://www.orfeo-toolbox.org/packages/xdk/$XDK_VERSION/"| \ + $SED -n 's,.*OTB-\([0-9][^<]*\).*-xdk-Linux.*,\1,p') + +XDK_FILE=OTB-$VERSION_STRING-xdk-Linux64.run +CMAKE_PREFIX_PATH=/tmp/OTB-$VERSION_STRING-xdk-Linux64 +OTB_INSTALL_DIR=$CTEST_DASHBOARD_ROOT/orfeotoolbox/install + +#export variables for later use in cmake file +export CTEST_COMMAND +export OTB_VERSION +export XDK_VERSION +export CTEST_DASHBOARD_ROOT +export CTEST_CMAKE_GENERATOR +export CMAKE_MAKE_PROGRAM +export CMAKE_PREFIX_PATH +export OTB_INSTALL_DIR + +#print +echo "VERSION_STRING=$VERSION_STRING" +echo "TRAVIS_BRANCH=$TRAVIS_BRANCH" +echo "CTEST_DASHBOARD_ROOT=$CTEST_DASHBOARD_ROOT" +echo "CTEST_COMMAND=$CTEST_COMMAND" +echo "XDK_VERSION=$XDK_VERSION" +echo "XDK_FILE=$XDK_FILE" +echo "OTB_INSTALL_DIR=$OTB_INSTALL_DIR" +echo "CMAKE_PREFIX_PATH=$CMAKE_PREFIX_PATH" + +#change to /tmp +cd /tmp + +#download, extract cmake binaries +wget https://cmake.org/files/v3.4/cmake-3.4.1-Linux-x86_64.tar.gz --no-check-certificate +tar -xzf cmake-3.4.1-Linux-x86_64.tar.gz + +#download, extract ninja binaries +wget https://github.com/martine/ninja/releases/download/v1.6.0/ninja-linux.zip --no-check-certificate +unzip ninja-linux.zip + +#download, extract OTB XDK +wget https://www.orfeo-toolbox.org/packages/xdk/$XDK_VERSION/$XDK_FILE --no-check-certificate +chmod +x /tmp/$XDK_FILE +/tmp/$XDK_FILE + +echo "Running ctest -VV -S TravisBuild.cmake" +$CTEST_COMMAND -VV -S $CTEST_DASHBOARD_ROOT/orfeotoolbox/OTB/Utilities/Maintenance/TravisBuild.cmake -- GitLab