Page MenuHomeHEPForge

No OneTemporary

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index ed4f5a7..cbda732 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,216 +1,281 @@
-.tags_template:
- tags: &tags_def
- - docker
+# ---------------------------------
+# - General Setup -
+# ---------------------------------
stages:
- build
- test
- # - FOG
+ - FOG:build
+ - FOG:test
# - clean_code
# - publish
variables:
- HEJ_Install_DIR: tmp_HEJ/HEJ_installed
- HEJ_build_DIR: tmp_HEJ/build_HEJ
- FOG_build_DIR: tmp_HEJ/build_FOG
+ # build directories
+ HEJ_BUILD_DIR: tmp_HEJ/HEJ_build
+ HEJ_INSTALL_DIR: tmp_HEJ/HEJ_installed
+ FOG_BUILD_DIR: tmp_HEJ/FOG_build
+ FOG_INSTALL_DIR: ${HEJ_INSTALL_DIR}
+ # docker images
+ DOCKER_BASIC: hejdock/hepenv
+ DOCKER_RIVET: hejdock/rivetenv
+
+# ----------- Macros -----------
after_script:
- date
+.tags_template:
+ tags: &tags_def
+ - docker
+# save complete history of failed tests
+.save_failure:
+ artifacts: &artifacts_failed
+ when: on_failure
+ untracked: true
+ expire_in: 1h # TODO change to 3d
-## ----------- Build -----------
+# ---------------------------------
+# - Script Templates -
+# ---------------------------------
+
+# ----------- Build -----------
.HEJ_build:
tags: *tags_def
stage: build
before_script:
- date
- source /cvmfs/pheno.egi.eu/HEJ/HEJ_env.sh || exit 1
- - export t_HEJ_Install_DIR=${PWD}/$HEJ_Install_DIR
- - export t_HEJ_build_DIR=${PWD}/$HEJ_build_DIR
- - export t_HEJ_DIR=${PWD}
- - mkdir -p ${t_HEJ_build_DIR}
- - cd ${t_HEJ_build_DIR}
- - cmake ${t_HEJ_DIR} -DCMAKE_BUILD_TYPE=DEBUG -DCMAKE_INSTALL_PREFIX=${t_HEJ_Install_DIR}
+ # prepare build
+ - t_HEJ_DIR=${PWD}
+ - t_HEJ_INSTALL_DIR=${PWD}/${HEJ_INSTALL_DIR}
+ - t_HEJ_BUILD_DIR=${PWD}/${HEJ_BUILD_DIR}
+ - mkdir -p ${t_HEJ_BUILD_DIR}
+ - cd ${t_HEJ_BUILD_DIR}
+ - cmake ${t_HEJ_DIR} -DCMAKE_BUILD_TYPE=DEBUG
+ -DCMAKE_INSTALL_PREFIX=${t_HEJ_INSTALL_DIR}
script:
- make -j $(nproc --ignore=1)
- make install
- artifacts: # save build and installed folder
- expire_in: 1 hour # TODO change this to 1 day
+ artifacts:
+ # save build and installed folder
+ name: build
+ expire_in: 1h # TODO change to 1d
paths:
- - ${HEJ_Install_DIR}
- - ${HEJ_build_DIR}
-
-build:basic:
- image: hejdock/hepenv
- extends: .HEJ_build
- after_script:
- - echo "basic" > ${HEJ_build_DIR}/info.log # TODO remove
+ - ${HEJ_INSTALL_DIR}
+ - ${HEJ_BUILD_DIR}
-build:rivet:
- image: hejdock/rivetenv
- extends: .HEJ_build
- after_script:
- - echo "rivet" > ${HEJ_build_DIR}/info.log # TODO remove
-
-## ----------- Test -----------
+# ----------- Test -----------
.HEJ_test:
tags: *tags_def
stage: test
before_script:
- date
- source /cvmfs/pheno.egi.eu/HEJ/HEJ_env.sh || exit 1
- - cd ${HEJ_build_DIR}
- - cat info.log
+ # load HEJ
+ - t_HEJ_DIR=${PWD}
+ - t_HEJ_INSTALL_DIR=${PWD}/${HEJ_INSTALL_DIR}
+ - export LD_LIBRARY_PATH=${t_HEJ_INSTALL_DIR}/lib:${LD_LIBRARY_PATH}
+ - export PATH=${t_HEJ_INSTALL_DIR}/bin:${PATH}
+ - cd ${HEJ_BUILD_DIR}
+ - cmake ${t_HEJ_DIR} # rerun cmake to create all test configure files
+ - cat info.log # TODO remove
+ script:
+ - ctest --output-on-failure
+ artifacts: *artifacts_failed
+
+## ----------- FOG build -----------
+
+.FOG_build:
+ tags: *tags_def
+ stage: FOG:build
+ before_script:
+ - date
+ - source /cvmfs/pheno.egi.eu/HEJ/HEJ_env.sh || exit 1
+ # load HEJ
+ - t_HEJ_INSTALL_DIR=${PWD}/${HEJ_INSTALL_DIR}
+ - export LD_LIBRARY_PATH=${t_HEJ_INSTALL_DIR}/lib:${LD_LIBRARY_PATH}
+ - export PATH=${t_HEJ_INSTALL_DIR}/bin:${PATH}
+ # prepare build
+ - t_FOG_DIR=${PWD}/FixedOrderGen
+ - t_FOG_INSTALL_DIR=${PWD}/${FOG_INSTALL_DIR}
+ - t_FOG_BUILD_DIR=${PWD}/${FOG_BUILD_DIR}
+ - mkdir -p ${t_FOG_BUILD_DIR}
+ - cd ${t_FOG_BUILD_DIR}
+ - cmake ${t_FOG_DIR} -DCMAKE_BUILD_TYPE=DEBUG
+ -DCMAKE_INSTALL_PREFIX=${t_FOG_INSTALL_DIR}
+ script:
+ - make -j $(nproc --ignore=1)
+ - make install
+ artifacts:
+ # save build and installed folder
+ name: FOG_build
+ expire_in: 1h # TODO change to 1d
+ paths:
+ - ${HEJ_INSTALL_DIR}
+ - ${FOG_INSTALL_DIR}
+ - ${FOG_BUILD_DIR}
+
+## ----------- FOG test -----------
+
+.FOG_test:
+ tags: *tags_def
+ stage: FOG:test
+ before_script:
+ - date
+ - source /cvmfs/pheno.egi.eu/HEJ/HEJ_env.sh || exit 1
+ # load HEJ
+ - t_FOG_DIR=${PWD}/FixedOrderGen
+ - t_HEJ_INSTALL_DIR=${PWD}/${HEJ_INSTALL_DIR}
+ - t_FOG_INSTALL_DIR=${PWD}/${FOG_INSTALL_DIR}
+ - export LD_LIBRARY_PATH=${t_HEJ_INSTALL_DIR}/lib:${LD_LIBRARY_PATH}
+ - export PATH=${t_HEJ_INSTALL_DIR}/bin:${t_FOG_INSTALL_DIR}/bin:${PATH}
+ - t_FOG_BUILD_DIR=${PWD}/${FOG_BUILD_DIR}
+ - cd ${t_FOG_BUILD_DIR}
+ - cmake ${t_FOG_DIR} # rerun cmake to create all test configure files
script:
- make test
+ artifacts: *artifacts_failed
+
+
+# ---------------------------------
+# - Build & Test -
+# ---------------------------------
+
+# basic
+
+build:basic:
+ image: ${DOCKER_BASIC}
+ extends: .HEJ_build
after_script:
- - cd ${HEJ_build_DIR}
- - cat Testing/Temporary/LastTest.log # TODO remove
+ - echo "basic" > ${HEJ_BUILD_DIR}/info.log # TODO remove
test:basic:
- image: hejdock/hepenv
+ image: ${DOCKER_BASIC}
extends: .HEJ_test
dependencies:
- build:basic
+FOG:build:basic:
+ image: ${DOCKER_BASIC}
+ extends: .FOG_build
+ after_script:
+ - echo "FOG basic" > ${HEJ_BUILD_DIR}/info.log # TODO remove
+ dependencies:
+ - build:basic
+
+FOG:test:basic:
+ image: ${DOCKER_BASIC}
+ extends: .FOG_test
+ dependencies:
+ - FOG:build:basic
+
+# rivet
+
+build:rivet:
+ image: ${DOCKER_RIVET}
+ extends: .HEJ_build
+ after_script:
+ - echo "rivet" > ${HEJ_BUILD_DIR}/info.log # TODO remove
+
test:rivet:
- image: hejdock/rivetenv
+ image: ${DOCKER_RIVET}
extends: .HEJ_test
dependencies:
- build:rivet
script:
- - make test
+ - ctest --output-on-failure
- bash -c '[ -f tst.yoda ]' && echo "found rivet output"
- rivet-cmphistos tst.yoda
- bash -c '[ -f MC_XS_XS.dat ]' && echo "yoda not empty"
## OLD:
-# Minimal_setup:
-# stage: minimal_compile
-# extends: .HEJ_build
-# image: hejdock/hepenv
-# script:
-# - make test
-
-# FOG:
-# stage: minimal_compile
-# extends: .HEJ_build
-# image: hejdock/hepenv
-# script:
-# - date
-# # install HEJ
-# - make install
-# # setup env
-# - export LD_LIBRARY_PATH=${t_HEJ_Install_DIR}/lib:${LD_LIBRARY_PATH}
-# - export PATH=${t_HEJ_Install_DIR}/bin:${PATH}
-# - export t_FOG_build_DIR=${PWD}/$FOG_build_DIR
-# - export t_FOG_DIR=${t_HEJ_DIR}/FixedOrderGen
-# # compile
-# - mkdir -p ${t_FOG_build_DIR}
-# - cd ${t_FOG_build_DIR}
-# - cmake ${t_FOG_DIR} -DCMAKE_BUILD_TYPE=DEBUG
-# - make -j 8
-# - make test
-
-
-# rivet:
-# stage: different_compile
-# extends: .HEJ_build
-# image: hejdock/rivetenv
-# variables:
-# HEJ_build_DIR: tmp_HEJ/build_HEJ_rivet
-# script:
-# - make test
-# - bash -c '[ -f tst.yoda ]' && echo "found rivet output"
-# - rivet-cmphistos tst.yoda
-# - bash -c '[ -f MC_XS_XS.dat ]' && echo "yoda not empty"
-
# QCDloop:
# stage: different_compile
# extends: .HEJ_build
# image: hejdock/qcdloopenv
# variables:
-# HEJ_build_DIR: tmp_HEJ/build_HEJ_qcd
+# HEJ_BUILD_DIR: tmp_HEJ/build_HEJ_qcd
# script:
# - make test
# HepMC3:
# stage: different_compile
# extends: .HEJ_build
# image: hejdock/hepmc3env
# variables:
-# HEJ_build_DIR: tmp_HEJ/build_HEJ_HepMC3
+# HEJ_BUILD_DIR: tmp_HEJ/build_HEJ_HepMC3
# script:
# - make test
# No_tabs:
# stage: clean_code
# tags: *tags_def
# image: hejdock/git
# script:
# - date
# - check_tabs
# No_warnings:
# stage: clean_code
# tags: *tags_def
# image: hejdock/hepenv
# before_script:
# - date
# - source /cvmfs/pheno.egi.eu/HEJ/HEJ_env.sh || exit 1
-# - export t_HEJ_Install_DIR=${PWD}/$HEJ_Install_DIR
-# - export t_HEJ_build_DIR=${PWD}/$HEJ_build_DIR
+# - export t_HEJ_INSTALL_DIR=${PWD}/$HEJ_INSTALL_DIR
+# - export t_HEJ_BUILD_DIR=${PWD}/$HEJ_BUILD_DIR
# - export t_HEJ_DIR=${PWD}
-# - export LD_LIBRARY_PATH=${t_HEJ_Install_DIR}/lib:${LD_LIBRARY_PATH}
-# - export PATH=${t_HEJ_Install_DIR}/bin:${PATH}
-# - export t_FOG_build_DIR=${PWD}/$FOG_build_DIR
+# - export LD_LIBRARY_PATH=${t_HEJ_INSTALL_DIR}/lib:${LD_LIBRARY_PATH}
+# - export PATH=${t_HEJ_INSTALL_DIR}/bin:${PATH}
+# - export t_FOG_BUILD_DIR=${PWD}/$FOG_BUILD_DIR
# - export t_FOG_DIR=${t_HEJ_DIR}/FixedOrderGen
-# - mkdir -p ${t_HEJ_build_DIR}
-# - mkdir -p ${t_FOG_build_DIR}
+# - mkdir -p ${t_HEJ_BUILD_DIR}
+# - mkdir -p ${t_FOG_BUILD_DIR}
# script:
# - sed -i 's/include_directories(${LHAPDF/include_directories(SYSTEM ${LHAPDF/g' CMakeLists.txt
# - sed -i 's/include_directories(${fastjet/include_directories(SYSTEM ${fastjet/g' CMakeLists.txt
# - sed -i 's/include_directories(${Boost/include_directories(SYSTEM ${Boost/g' CMakeLists.txt
-# - cd ${t_HEJ_build_DIR}
-# - cmake ${t_HEJ_DIR} -DCMAKE_CXX_FLAGS="-Werror" -DCMAKE_INSTALL_PREFIX=${t_HEJ_Install_DIR}
+# - cd ${t_HEJ_BUILD_DIR}
+# - cmake ${t_HEJ_DIR} -DCMAKE_CXX_FLAGS="-Werror" -DCMAKE_INSTALL_PREFIX=${t_HEJ_INSTALL_DIR}
# - make -j 8
# - make install
# - cd ${t_FOG_DIR}
# - sed -i 's/include_directories(${LHAPDF/include_directories(SYSTEM ${LHAPDF/g' CMakeLists.txt
# - sed -i 's/include_directories(${fastjet/include_directories(SYSTEM ${fastjet/g' CMakeLists.txt
# - sed -i 's/include_directories(${Boost/include_directories(SYSTEM ${Boost/g' CMakeLists.txt
-# - cd ${t_FOG_build_DIR}
+# - cd ${t_FOG_BUILD_DIR}
# - cmake ${t_FOG_DIR} -DCMAKE_CXX_FLAGS="-Werror"
# - make -j 8
# .Publish:
# stage: publish
# tags: *tags_def
# image: hejdock/git
# before_script:
# - mkdir -p .ssh/ && echo "${SSH_KEY}" > .ssh/id_rsa && chmod 0600 .ssh/id_rsa
# - rm -rf ~/.ssh/id_rsa; mkdir -p ~/.ssh/
# - ln -s $PWD/.ssh/id_rsa ~/.ssh/id_rsa && chmod 0600 ~/.ssh/id_rsa
# - ssh -T ${PUBLIC_GIT_PREFIX} -o "StrictHostKeyChecking no" || echo "added ssh"
# script:
# - git remote add public ${PUBLIC_GIT_PREFIX}${PUBLIC_GIT_POSTFIX}
# - git checkout $CI_COMMIT_REF_NAME
# - git branch
# - git pull
# - git push public
# - git push public --tags
# after_script:
# - rm -f /root/.ssh/id_rsa && rm -fr .ssh
# - git remote rm public
# Publish_version:
# extends: .Publish
# only:
# - /^v\d+\.\d+$/
# except:
# - tags
# when: on_success

File Metadata

Mime Type
text/x-diff
Expires
Mon, Jan 20, 10:59 PM (1 d, 17 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
4242758
Default Alt Text
(10 KB)

Event Timeline