From f7806f66c230de66297a0d81c4194dcf3d544079 Mon Sep 17 00:00:00 2001 From: Marko Petric <marko.petric@cern.ch> Date: Tue, 8 Nov 2016 14:44:40 +0100 Subject: [PATCH] Migrate CI to GCC 6.2 and LLVM 3.9 --- .dd4hep-ci.d/init_x86_64.sh | 120 ++++++++++++++++++++++++++++++++++++ .gitlab-ci.yml | 41 ++++++------ 2 files changed, 139 insertions(+), 22 deletions(-) create mode 100644 .dd4hep-ci.d/init_x86_64.sh diff --git a/.dd4hep-ci.d/init_x86_64.sh b/.dd4hep-ci.d/init_x86_64.sh new file mode 100644 index 000000000..f70c393f0 --- /dev/null +++ b/.dd4hep-ci.d/init_x86_64.sh @@ -0,0 +1,120 @@ +#!/bin/bash + +#Determine which OS you are using +if [ "$( cat /etc/*-release | grep Scientific )" ]; then + OS=slc6 +elif [ "$( cat /etc/*-release | grep CentOS )" ]; then + OS=centos7 +else + echo "UNKNOWN OS" + exit 1 +fi + +#Determine is you have CVMFS installed +if [ ! -d "/cvmfs" ]; then + echo "No CVMFS detected, please install it." + exit 1 +fi + +if [ ! -d "/cvmfs/clicdp.cern.ch" ]; then + echo "No clicdp CVMFS repository detected, please add it." + exit 1 +fi + + +#Determine which compiler to use +if [ -z ${COMPILER_TYPE} ]; then + COMPILER_TYPE="gcc" +fi +if [ ${COMPILER_TYPE} == "gcc" ]; then + COMPILER_VERSION="gcc62" +fi +if [ ${COMPILER_TYPE} == "llvm" ]; then + COMPILER_VERSION="llvm39" +fi + + +#Choose build type +if [ -z ${BUILD_TYPE} ]; then + BUILD_TYPE=opt +fi + + +# General variables +CLICREPO=/cvmfs/clicdp.cern.ch +BUILD_FLAVOUR=x86_64-${OS}-${COMPILER_VERSION}-${BUILD_TYPE} + +#-------------------------------------------------------------------------------- +# Compiler +#-------------------------------------------------------------------------------- + +if [ ${COMPILER_TYPE} == "gcc" ]; then + source ${CLICREPO}/compilers/gcc/6.2.0/x86_64-${OS}/setup.sh +else + source ${CLICREPO}/compilers/llvm/3.9.0/x86_64-${OS}/setup.sh +fi + +#-------------------------------------------------------------------------------- +# CMake +#-------------------------------------------------------------------------------- + +export CMAKE_HOME=${CLICREPO}/software/CMake/3.6.2/${BUILD_FLAVOUR} +export PATH=${CMAKE_HOME}/bin:$PATH + +#-------------------------------------------------------------------------------- +# Python +#-------------------------------------------------------------------------------- + +export PYTHONDIR=${CLICREPO}/software/Python/2.7.12/${BUILD_FLAVOUR} +export PATH=${PYTHONDIR}/bin:$PATH +export LD_LIBRARY_PATH=${PYTHONDIR}/lib:${LD_LIBRARY_PATH} + +#-------------------------------------------------------------------------------- +# ROOT +#-------------------------------------------------------------------------------- + +export ROOTSYS=${CLICREPO}/software/ROOT/6.08.00/${BUILD_FLAVOUR} +export PYTHONPATH="$ROOTSYS/lib:$PYTHONPATH" +export PATH="$ROOTSYS/bin:$PATH" +export LD_LIBRARY_PATH="$ROOTSYS/lib:$LD_LIBRARY_PATH" + +#-------------------------------------------------------------------------------- +# XercesC +#-------------------------------------------------------------------------------- + +export XercesC_HOME=${CLICREPO}/software/Xerces-C/3.1.4/${BUILD_FLAVOUR} +export PATH="$XercesC_HOME/bin:$PATH" +export LD_LIBRARY_PATH="$XercesC_HOME/lib:$LD_LIBRARY_PATH" + + +#-------------------------------------------------------------------------------- +# Geant4 +#-------------------------------------------------------------------------------- + +export G4INSTALL=${CLICREPO}/software/Geant4/10.02.p02/${BUILD_FLAVOUR} +export G4ENV_INIT="${G4INSTALL}/bin/geant4.sh" +export G4SYSTEM="Linux-g++" + + +#-------------------------------------------------------------------------------- +# LCIO +#-------------------------------------------------------------------------------- +export LCIO=${CLICREPO}/software/LCIO/2.7.3/${BUILD_FLAVOUR} +export PYTHONPATH=${LCIO}/python +export PATH=${LCIO}/bin:$PATH +export LD_LIBRARY_PATH="$LCIO/lib:$LD_LIBRARY_PATH" + + +#-------------------------------------------------------------------------------- +# Boost +#-------------------------------------------------------------------------------- + +export BOOST_ROOT=${CLICREPO}/software/Boost/1.62.0/${BUILD_FLAVOUR} +export LD_LIBRARY_PATH="${BOOST_ROOT}/lib:$LD_LIBRARY_PATH" + +#-------------------------------------------------------------------------------- +# Ninja +#-------------------------------------------------------------------------------- + +export Ninja_HOME=${CLICREPO}/software/Ninja/1.7.1/${BUILD_FLAVOUR} +export PATH="$Ninja_HOME:$PATH" diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index c270d77b0..b461c8d85 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,12 +1,11 @@ -slc6-gcc48: +slc6-gcc62: tags: - docker image: clicdp/slc6-base script: - - export GCC_VERSION="4.8.5" - - export BUILD_TYPE="opt" - - source .gitlab-ci.d/init_x86_64.sh - - mkdir build + - export COMPILER_TYPE="gcc" + - source .dd4hep-ci.d/init_x86_64.sh + - mkdir build - cd build - cmake -GNinja -D DD4HEP_USE_GEANT4=ON -D DD4HEP_USE_BOOST=ON -DBoost_NO_BOOST_CMAKE=ON -D DD4HEP_USE_LCIO=ON -D BUILD_TESTING=ON -D Geant4_DIR=$G4INSTALL/lib64/Geant4-10.2.2 -D DD4HEP_USE_CXX11=ON -DCMAKE_BUILD_TYPE=Release .. - ninja @@ -21,14 +20,13 @@ slc6-gcc48: - ninja install - ctest --output-on-failure -slc6-gcc49: +slc6-llvm39: tags: - docker image: clicdp/slc6-base script: - - export GCC_VERSION="4.9.3" - - export BUILD_TYPE="opt" - - source .gitlab-ci.d/init_x86_64.sh + - export COMPILER_TYPE="llvm" + - source .dd4hep-ci.d/init_x86_64.sh - mkdir build - cd build - cmake -GNinja -D DD4HEP_USE_GEANT4=ON -D DD4HEP_USE_BOOST=ON -DBoost_NO_BOOST_CMAKE=ON -D DD4HEP_USE_LCIO=ON -D BUILD_TESTING=ON -D Geant4_DIR=$G4INSTALL/lib64/Geant4-10.2.2 -D DD4HEP_USE_CXX11=ON -DCMAKE_BUILD_TYPE=Release .. @@ -44,15 +42,14 @@ slc6-gcc49: - ninja install - ctest --output-on-failure -slc6-gcc49-XERCESC: +slc6-gcc62-XERCESC: tags: - docker image: clicdp/slc6-base script: - - export GCC_VERSION="4.9.3" - - export BUILD_TYPE="opt" - - source .gitlab-ci.d/init_x86_64.sh - - mkdir build + - export COMPILER_TYPE="gcc" + - source .dd4hep-ci.d/init_x86_64.sh + - mkdir build - cd build - cmake -GNinja -D DD4HEP_USE_GEANT4=ON -D DD4HEP_USE_BOOST=ON -DBoost_NO_BOOST_CMAKE=ON -D DD4HEP_USE_LCIO=ON -D BUILD_TESTING=ON -D Geant4_DIR=$G4INSTALL/lib64/Geant4-10.2.2 -D DD4HEP_USE_CXX11=ON -DCMAKE_BUILD_TYPE=Release -DDD4HEP_USE_XERCESC=ON .. - ninja @@ -67,15 +64,14 @@ slc6-gcc49-XERCESC: - ninja install - ctest --output-on-failure -centos7-gcc49: +centos7-gcc62: tags: - docker image: clicdp/cc7-base script: - - export GCC_VERSION="4.9.3" - - export BUILD_TYPE="opt" - - source .gitlab-ci.d/init_x86_64.sh - - mkdir build + - export COMPILER_TYPE="gcc" + - source .dd4hep-ci.d/init_x86_64.sh + - mkdir build - cd build - cmake -GNinja -D DD4HEP_USE_GEANT4=ON -D DD4HEP_USE_BOOST=ON -DBoost_NO_BOOST_CMAKE=ON -D DD4HEP_USE_LCIO=ON -D BUILD_TESTING=ON -D Geant4_DIR=$G4INSTALL/lib64/Geant4-10.2.2 -D DD4HEP_USE_CXX11=ON -DCMAKE_BUILD_TYPE=Release .. - ninja @@ -89,14 +85,15 @@ centos7-gcc49: - ninja - ninja install - ctest --output-on-failure - -slc6-llvm39: + +centos7-llvm39: tags: - docker image: clicdp/slc6-base script: - - source .gitlab-ci.d/init_clang.sh + - export COMPILER_TYPE="llvm" + - source .dd4hep-ci.d/init_x86_64.sh - mkdir build - cd build - cmake -GNinja -D DD4HEP_USE_GEANT4=ON -D DD4HEP_USE_BOOST=ON -DBoost_NO_BOOST_CMAKE=ON -D DD4HEP_USE_LCIO=ON -D BUILD_TESTING=ON -D Geant4_DIR=$G4INSTALL/lib64/Geant4-10.2.2 -D DD4HEP_USE_CXX11=ON -DCMAKE_BUILD_TYPE=Release .. -- GitLab