Page MenuHomeHEPForge

No OneTemporary

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 4e32c19..d3ea096 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,138 +1,187 @@
stages:
- checks
- build
- test
variables:
- LCG_VERSION: "LCG_98python3"
- GCC_VERSION: "10"
- CLANG_VERSION: "10"
+ LCG_VERSION: "LCG_103"
+ GCC_VERSION: "12"
+ CLANG_VERSION: "12"
BUILD_TYPE: "Release"
BUILD_TESTS: "OFF"
BUILD_DOXYGEN: "OFF"
USE_HEPMC3: "ON"
+ USE_PYTHIA: "ON"
+ USE_PHOTOS: "ON"
+ USE_TAUOLA: "ON"
+
+.future_os_image:
+ variables:
+ LCG_OS: x86_64-el9
+ GCC_VERSION: "13"
+ CLANG_VERSION: "16"
+ image: gitlab-registry.cern.ch/lhcb-docker/os-base/alma9-devel:latest
+ tags:
+ - k8s-cvmfs
.production_image:
variables:
LCG_OS: x86_64-centos7
- image: gitlab-registry.cern.ch/ci-tools/ci-worker:cc7
+ image: gitlab-registry.cern.ch/lhcb-docker/os-base/centos7-devel:latest
tags:
- - cvmfs
+ - k8s-cvmfs
.lcg_setup:
before_script:
- set +e && source /cvmfs/sft.cern.ch/lcg/views/setupViews.sh $LCG_VERSION $LCG_OS-$LCG_COMPILER; set -e
+.future_rules:
+ rules:
+ - if: '$CI_PIPELINE_SOURCE == "schedule"'
+ allow_failure: false
+ - if: '$CI_PIPELINE_SOURCE == "push"'
+ allow_failure: true
+
.build_template:
stage: build
extends:
- .lcg_setup
script:
- mkdir install
- mkdir build && cd build
- - cmake -DCMAKE_BUILD_TYPE:STRING=$BUILD_TYPE -DCMAKE_INSTALL_PREFIX:PATH=$CI_PROJECT_DIR/install -DEVTGEN_HEPMC3:BOOL=$USE_HEPMC3 -DEVTGEN_PYTHIA:BOOL=ON -DEVTGEN_PHOTOS:BOOL=ON -DEVTGEN_TAUOLA:BOOL=ON -DEVTGEN_BUILD_TESTS:BOOL=$BUILD_TESTS -DEVTGEN_BUILD_VALIDATIONS:BOOL=$BUILD_TESTS -DEVTGEN_BUILD_DOXYGEN:BOOL=$BUILD_DOXYGEN $CI_PROJECT_DIR
+ - cmake -DCMAKE_BUILD_TYPE:STRING=$BUILD_TYPE -DCMAKE_INSTALL_PREFIX:PATH=$CI_PROJECT_DIR/install -DEVTGEN_HEPMC3:BOOL=$USE_HEPMC3 -DEVTGEN_PYTHIA:BOOL=$USE_PYTHIA -DEVTGEN_PHOTOS:BOOL=$USE_PHOTOS -DEVTGEN_TAUOLA:BOOL=$USE_TAUOLA -DEVTGEN_BUILD_TESTS:BOOL=$BUILD_TESTS -DEVTGEN_BUILD_VALIDATIONS:BOOL=$BUILD_TESTS -DEVTGEN_BUILD_DOXYGEN:BOOL=$BUILD_DOXYGEN $CI_PROJECT_DIR
- cmake --build .
- cmake --build . --target install
.check_template:
stage: checks
variables:
LCG_COMPILER: "clang$CLANG_VERSION-opt"
extends:
- .production_image
- .lcg_setup
check_formatting:
extends:
- .check_template
script:
- source applyClangFormat.sh
- git status --porcelain | grep '^ M' || exit 0
- echo "The above files do not comply with formatting, please apply clang-format"
- exit 1
check_test_json_files:
extends:
- .check_template
script:
- cd test
- python checkJsonFiles.py
build_clang_opt:
variables:
LCG_COMPILER: "clang$CLANG_VERSION-opt"
extends:
- .production_image
- .build_template
build_gcc_opt:
variables:
LCG_COMPILER: "gcc$GCC_VERSION-opt"
extends:
- .production_image
- .build_template
build_hepmc2_gcc_opt:
variables:
+ LCG_VERSION: "LCG_103_LHCB_7"
LCG_COMPILER: "gcc$GCC_VERSION-opt"
USE_HEPMC3: "OFF"
extends:
- .production_image
- .build_template
build_gcc_dbg:
variables:
LCG_COMPILER: "gcc$GCC_VERSION-dbg"
BUILD_TYPE: "Debug"
BUILD_TESTS: "ON"
BUILD_DOXYGEN: "ON"
extends:
- .production_image
- .build_template
after_script:
- cd install/share/EvtGen/test
- ./makeModelsJson $CI_PROJECT_DIR > Models.json
- ./makeSrcDepsJson $CI_PROJECT_DIR $CI_PROJECT_DIR/build > SrcDeps.json
artifacts:
paths:
- install
expire_in: 1 day
when: always
+build_future_clang_opt:
+ variables:
+ LCG_VERSION: "LCG_104"
+ LCG_COMPILER: "clang$CLANG_VERSION-opt"
+ extends:
+ - .future_os_image
+ - .build_template
+ rules:
+ - !reference [.future_rules, rules]
+
+build_future_gcc_opt:
+ variables:
+ LCG_VERSION: "LCG_104"
+ LCG_COMPILER: "gcc$GCC_VERSION-opt"
+ extends:
+ - .future_os_image
+ - .build_template
+ rules:
+ - !reference [.future_rules, rules]
+
.test_template:
stage: test
variables:
LCG_COMPILER: "gcc$GCC_VERSION-dbg"
extends:
- .production_image
- .lcg_setup
dependencies:
- build_gcc_dbg
artifacts:
paths:
- install/share/EvtGen/test
expire_in: 1 day
when: always
# TODO - need to copy in the appropriate files to act as references for this run
# and save the resulting files for possible future use as references
# - where to store the reference files? CI cache? EOS?
# - need to add a test case for merge requests
-test_on_push:
+test_on_push_to_master:
extends:
- .test_template
rules:
- - if: '$CI_PIPELINE_SOURCE == "push"'
+ - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "master"'
script:
- cd install/share/EvtGen/test
- git diff --numstat $CI_COMMIT_BEFORE_SHA $CI_COMMIT_SHA | awk '{print $NF}' | xargs ./runTests.py Models.json SrcDeps.json
+test_on_push_to_branch:
+ extends:
+ - .test_template
+ rules:
+ - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH != "master"'
+ script:
+ - cd install/share/EvtGen/test
+ - git diff --numstat origin/master...$CI_COMMIT_SHA | awk '{print $NF}' | xargs ./runTests.py Models.json SrcDeps.json
+
test_on_schedule:
extends:
- .test_template
rules:
- if: '$CI_PIPELINE_SOURCE == "schedule" && $CI_COMMIT_BRANCH == "master"'
script:
- cd install/share/EvtGen/test
- git diff --numstat `git tag --list 'R*' | tail -n 1` $CI_COMMIT_SHA | awk '{print $NF}' | xargs ./runTests.py Models.json SrcDeps.json

File Metadata

Mime Type
text/x-diff
Expires
Sat, May 3, 6:50 AM (16 h, 56 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
4956479
Default Alt Text
(5 KB)

Event Timeline