Newer
Older
- checkRepository
Florian Uhlig
committed
- finalise
stage: checkRepository
only:
refs:
- merge_requests
variables:
- $CI_MERGE_REQUEST_PROJECT_PATH == "computing/cbmroot" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "master"

Pierre-Alain Loizeau
committed
- $CI_MERGE_REQUEST_PROJECT_PATH == "mcbm/cbmroot" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "master"
script:
# Get the upstream repository manually. I did not find any other way to have it for
# comparison
# Check if a rebase is needed
# If a rebase is needed stop immediately
- apk update && apk add git bash
- scripts/connect_upstream_repo.sh $CI_MERGE_REQUEST_PROJECT_URL
- git fetch upstream
- hash1=$(git show-ref upstream/master | cut -f1 -d' ')
- hash2=$(git merge-base upstream/master HEAD)
- echo "${hash1}"
- echo "${hash2}"
- if [ "${hash1}" = "${hash2}" ]; then
- echo "No rebase required"
- exit 0
- else
- echo "The Merge Request is not up-to-date"
- echo "Rebase is required"
- exit 1
- fi
LinearHistCheck:
stage: checkRepository
tags:
only:
refs:
- merge_requests
variables:
- $CI_MERGE_REQUEST_PROJECT_PATH == "computing/cbmroot" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "master"

Pierre-Alain Loizeau
committed
- $CI_MERGE_REQUEST_PROJECT_PATH == "mcbm/cbmroot" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "master"
script:
# Get the upstream repository manually. I did not find any other way to have it for
# comparison
# Check if the history introduced by the MR is linear (no branch loop in fork)
# If not linear stop immediately
- apk update && apk add git bash
- scripts/connect_upstream_repo.sh $CI_MERGE_REQUEST_PROJECT_URL
- git fetch upstream
- count=$(git rev-list --min-parents=2 --count upstream/master..HEAD)
- echo "${count}"
- if [ 0 = "${count}" ]; then
- echo "History introduced in fork is linear"
- exit 0
- else
- echo "History introduced in fork is not linear"
- echo "${count} merge commits must be removed or the other new commits have to be replayed in a new branch"
- exit 1
- fi
stage: checkFormat
tags:
- CbmRoot
only:
refs:
- merge_requests
variables:
- $CI_MERGE_REQUEST_PROJECT_PATH == "computing/cbmroot" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "master"
script:
# Get the upstream repository manually. I did not find any other way to have it for
# comparison
- scripts/connect_upstream_repo.sh $CI_MERGE_REQUEST_PROJECT_URL
- git fetch upstream
- echo "export FAIRSOFT_VERSION=apr21p2" > env.sh
- echo "export FAIRROOT_VERSION=v18.6.7" >> env.sh
- echo "export SIMPATH=/cvmfs/fairsoft.gsi.de/debian10/fairsoft/\${FAIRSOFT_VERSION}" >> env.sh
- echo "export FAIRROOTPATH=/cvmfs/fairsoft.gsi.de/debian10/fairroot/\${FAIRROOT_VERSION}_fs_\${FAIRSOFT_VERSION}" >> env.sh
- echo "export BUILDDIR=$PWD/build" >> env.sh
- echo "export SOURCEDIR=$PWD" >> env.sh
- echo "export PATH=/cvmfs/fairroot.gsi.de/clang-format-11.0.0/bin:\$SIMPATH/bin:$PATH" >> env.sh
- echo "export LABEL=format-check_MR-\${CI_MERGE_REQUEST_IID}" >> env.sh
- echo "export FAIRROOT_FORMAT_BASE=upstream/\${CI_MERGE_REQUEST_TARGET_BRANCH_NAME}" >> env.sh
- . ./env.sh && ctest -S cmake/scripts/checkformat.cmake -VV

Pierre-Alain Loizeau
committed
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
CodeFormatCheckMcbm:
stage: checkFormat
tags:
- CbmRoot_mCBM
only:
refs:
- merge_requests
variables:
- $CI_MERGE_REQUEST_PROJECT_PATH == "mcbm/cbmroot" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "master"
script:
# Get the upstream repository manually. I did not find any other way to have it for
# comparison
- scripts/connect_upstream_repo.sh $CI_MERGE_REQUEST_PROJECT_URL
- git fetch upstream
- echo "export FAIRSOFT_VERSION=apr21p2" > env.sh
- echo "export FAIRROOT_VERSION=v18.6.7" >> env.sh
- echo "export SIMPATH=/opt/cbmsoft/fairsoft_\${FAIRSOFT_VERSION}_root6/installation" >> env.sh
- echo "export FAIRROOTPATH=/opt/cbmsoft/fairroot_\${FAIRROOT_VERSION}-fairsoft_\${FAIRSOFT_VERSION}_root6" >> env.sh
- echo "export BUILDDIR=$PWD/build" >> env.sh
- echo "export SOURCEDIR=$PWD" >> env.sh
- echo "export PATH=/opt/cbmsoft/clang-format-11.0.0_Linux/bin:\$SIMPATH/bin:$PATH" >> env.sh
- echo "export LABEL=format-check_MR-\${CI_MERGE_REQUEST_IID}" >> env.sh
- echo "export FAIRROOT_FORMAT_BASE=upstream/\${CI_MERGE_REQUEST_TARGET_BRANCH_NAME}" >> env.sh
- . ./env.sh && ctest -S cmake/scripts/checkformat.cmake -VV
FileFormatCheck:
stage: checkFormat
only:
refs:
- merge_requests
variables:
- $CI_MERGE_REQUEST_PROJECT_PATH == "computing/cbmroot" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "master"

Pierre-Alain Loizeau
committed
- $CI_MERGE_REQUEST_PROJECT_PATH == "mcbm/cbmroot" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "master"
script:
# Get the upstream repository manually. I did not find any other way to have it for
# comparison
- apk update && apk add git bash file
- scripts/connect_upstream_repo.sh $CI_MERGE_REQUEST_PROJECT_URL
- git fetch upstream
- scripts/check-file-format.sh upstream
FileEndCheck:
stage: checkFormat
image: alpine
tags:
- docker
only:
refs:
- merge_requests
variables:
- $CI_MERGE_REQUEST_PROJECT_PATH == "computing/cbmroot" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "master"

Pierre-Alain Loizeau
committed
- $CI_MERGE_REQUEST_PROJECT_PATH == "mcbm/cbmroot" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "master"
script:
# Get the upstream repository manually. I did not find any other way to have it for
# comparison
- apk update && apk add git bash file
- scripts/connect_upstream_repo.sh $CI_MERGE_REQUEST_PROJECT_URL
- git fetch upstream
- scripts/check-file-ending.sh upstream
FileLicenceCheck:
stage: checkFormat
image: alpine
tags:
- docker
only:
refs:
- merge_requests
variables:
- $CI_MERGE_REQUEST_PROJECT_PATH == "computing/cbmroot" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "master"
script:
# Get the upstream repository manually. I did not find any other way to have it for
# comparison
- apk update && apk add git bash file
- scripts/connect_upstream_repo.sh $CI_MERGE_REQUEST_PROJECT_URL
- git fetch upstream
- scripts/check-licence-header.sh upstream
#
# job template
#
.build_and_test: &build_and_test
- if [ "$CI_MERGE_REQUEST_PROJECT_PATH" != "computing/cbmroot" ]; then
- if [ "$CI_PROJECT_PATH" != "computing/cbmroot" ]; then
- echo "Should not come here"
- env
- exit 1
- fi
script:
- echo "export LINUX_FLAVOUR=$OS" >> Dart.cfg
- echo "export SIMPATH=$SIMPATH" >> Dart.cfg
- echo "export FAIRROOTPATH=$FAIRROOTPATH" >> Dart.cfg
- echo "export RAW_DATA_PATH=$RAW_DATA_PATH" >> Dart.cfg
- echo "export BUILDDIR=$PWD/build" >> Dart.cfg
- echo "export SOURCEDIR=$PWD" >> Dart.cfg
- if [[ -n $EXTRA_PATH ]]; then
- echo "export PATH=$EXTRA_PATH:$PATH" >> Dart.cfg
- fi
- if [[ -n $EXTRA_FLAGS ]]; then
- echo "export EXTRA_FLAGS=$EXTRA_FLAGS" >> Dart.cfg
- fi
- if [[ -n $CONFIGFILE ]]; then
- source $CONFIGFILE $FAIRSOFT_VERSION
- fi
- $PWD/Dart.sh $BUILD_TYPE Dart.cfg

Pierre-Alain Loizeau
committed
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
.build_and_test_mcbm: &build_and_test_mcbm
before_script:
- if [ "$CI_MERGE_REQUEST_PROJECT_PATH" != "mcbm/cbmroot" ]; then
- if [ "$CI_PROJECT_PATH" != "mcbm/cbmroot" ]; then
- echo "Should not come here"
- env
- exit 1
- fi
- fi
script:
- echo "export LINUX_FLAVOUR=$OS" >> Dart.cfg
- echo "export SIMPATH=$SIMPATH" >> Dart.cfg
- echo "export FAIRROOTPATH=$FAIRROOTPATH" >> Dart.cfg
- if [[ -n $RAW_DATA_PATH ]]; then
- echo "export RAW_DATA_PATH=$RAW_DATA_PATH" >> Dart.cfg
- fi
- echo "export BUILDDIR=$PWD/build" >> Dart.cfg
- echo "export SOURCEDIR=$PWD" >> Dart.cfg
- if [[ -n $EXTRA_PATH ]]; then
- echo "export PATH=$EXTRA_PATH:$PATH" >> Dart.cfg
- fi
- if [[ -n $EXTRA_FLAGS ]]; then
- echo "export EXTRA_FLAGS=$EXTRA_FLAGS" >> Dart.cfg
- fi
- if [[ -n $CONFIGFILE ]]; then
- source $CONFIGFILE $FAIRSOFT_VERSION
- fi
- $PWD/Dart.sh $BUILD_TYPE Dart.cfg
after_script:
- rm -rf build
#
# job element definitions
#
.realData_tag: &realData_tag
stage: build
tags:
- CbmRoot_realData
.realData_variables: &realData_variables
EXTRA_PATH: /opt/cmake/3.20.1/bin
NCPU: 16
RAW_DATA_PATH: "/opt/cbmsoft/beamtime-test-data/reduced/"
FAIRSOFT_VERSION: "apr21p2_root6"
FAIRROOT_VERSION: "v18.6.7"
BASE_PATH: "/opt/cbmsoft"
SIMPATH: "$BASE_PATH/fairsoft_$FAIRSOFT_VERSION/installation"
FAIRROOTPATH: "$BASE_PATH/fairroot_${FAIRROOT_VERSION}-fairsoft_${FAIRSOFT_VERSION}"

Pierre-Alain Loizeau
committed
.mcbm_tag: &mcbm_tag
stage: build
tags:
- CbmRoot_mCBM
.mcbm_variables: &mcbm_variables
OS: "mCBM_Debian10"
EXTRA_PATH: /opt/cmake/3.20.1/bin
NCPU: 16
RAW_DATA_PATH: "/opt/cbmsoft/beamtime-test-data/reduced/"
FAIRSOFT_VERSION: "apr21p2_root6"
FAIRROOT_VERSION: "v18.6.7"
BASE_PATH: "/opt/cbmsoft"
SIMPATH: "$BASE_PATH/fairsoft_$FAIRSOFT_VERSION/installation"
FAIRROOTPATH: "$BASE_PATH/fairroot_${FAIRROOT_VERSION}-fairsoft_${FAIRSOFT_VERSION}"
.singularity_tag: &singularity_tag
stage: build
tags:
- CbmRoot_singularity
.singularity_debian10_variables_apr21: &singularity_debian10_variables_apr21
OS: debian10
FAIRSOFT_VERSION: apr21p2
FAIRROOT_VERSION: v18.6.7
BASE_PATH: "/cvmfs/fairsoft.gsi.de/$OS"
SIMPATH: "$BASE_PATH/fairsoft/$FAIRSOFT_VERSION"
FAIRROOTPATH: "$BASE_PATH/fairroot/${FAIRROOT_VERSION}_fs_${FAIRSOFT_VERSION}"
CONFIGFILE: "/cvmfs/cbm.gsi.de/$OS/bin/setup_development_environment.sh"
.singularity_centos7_variables_apr21: &singularity_centos7_variables_apr21
OS: centos7
FAIRSOFT_VERSION: apr21p2
FAIRROOT_VERSION: v18.6.7
BASE_PATH: "/cvmfs/fairsoft.gsi.de/$OS/gcc8"
SIMPATH: "$BASE_PATH/fairsoft/$FAIRSOFT_VERSION"
FAIRROOTPATH: "$BASE_PATH/fairroot/${FAIRROOT_VERSION}_fs_${FAIRSOFT_VERSION}"
CONFIGFILE: "/cvmfs/cbm.gsi.de/$OS/bin/setup_development_environment_test.sh"
.singularity_debian11_variables_apr21: &singularity_debian11_variables_apr21
CONTAINER: "/cvmfs/cbm.gsi.de/containers/debian11_v18.6.7_apr21p2.sif"
FAIRSOFT_VERSION: apr21p2
FAIRROOT_VERSION: v18.6.7
SIMPATH: "$BASE_PATH/fairsoft/${FAIRSOFT_VERSION}"
FAIRROOTPATH: "$BASE_PATH/fairroot/${FAIRROOT_VERSION}_${FAIRSOFT_VERSION}"
EXTRA_FLAGS: '"-DCBM_TEST_INSTALL=TRUE\" \"-DCMAKE_INSTALL_PREFIX=install"'
.linux_tag: &linux_tag
stage: build
tags:
- CbmRoot
.linux_variables: &linux_variables
SIMPATH: "$BASE_PATH/fairsoft/$FAIRSOFT_VERSION"
FAIRROOTPATH: "$BASE_PATH/fairroot/${FAIRROOT_VERSION}_fs_${FAIRSOFT_VERSION}"
.macosx_12_variables: &macosx_12_variables
OS: "macOS12"
FAIRSOFT_VERSION: "apr21p2"
FAIRROOT_VERSION: "v18.6.7"
BASE_PATH: "/opt"
SIMPATH: "$BASE_PATH/fairsoft/$FAIRSOFT_VERSION"
FAIRROOTPATH: "$BASE_PATH/fairroot/${FAIRROOT_VERSION}_${FAIRSOFT_VERSION}"
IMAGE_NAME: "${OS}_${FAIRROOT_VERSION}_${FAIRSOFT_VERSION}"
EXTRA_PATH: /usr/local/bin
.macosx_11_variables: &macosx_11_variables
OS: "macOS11"
FAIRSOFT_VERSION: "apr21p2"
FAIRROOT_VERSION: "v18.6.7"
BASE_PATH: "/opt"
SIMPATH: "$BASE_PATH/fairsoft/$FAIRSOFT_VERSION"
FAIRROOTPATH: "$BASE_PATH/fairroot/${FAIRROOT_VERSION}_${FAIRSOFT_VERSION}"
IMAGE_NAME: "${OS}_${FAIRROOT_VERSION}_${FAIRSOFT_VERSION}"
EXTRA_PATH: /usr/local/bin
.macosx_1015_variables: &macosx_1015_variables
OS: "macOS1015"
FAIRSOFT_VERSION: "apr21p2"
BASE_PATH: "/opt"
SIMPATH: "$BASE_PATH/fairsoft/$FAIRSOFT_VERSION"
FAIRROOTPATH: "$BASE_PATH/fairroot/${FAIRROOT_VERSION}_${FAIRSOFT_VERSION}"
IMAGE_NAME: "${OS}_${FAIRROOT_VERSION}_${FAIRSOFT_VERSION}"
EXTRA_PATH: /usr/local/bin
.mergeVariables: &mergeVariables
BUILD_TYPE: "Continuous"
.mergeRequestVariables: &mergeRequestVariables
BUILD_TYPE: "MergeRequest"
.check_merge_request: &check_merge_request
only:
refs:
- merge_requests
variables:
- $CI_MERGE_REQUEST_PROJECT_PATH == "computing/cbmroot" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "master"

Pierre-Alain Loizeau
committed
.check_merge_request_mcbm: &check_merge_request_mcbm
only:
refs:
- merge_requests
variables:
- $CI_MERGE_REQUEST_PROJECT_PATH == "mcbm/cbmroot" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "master"
.check_merge: &check_merge
only:
refs:
- master
variables:
- $CI_PROJECT_PATH == "computing/cbmroot"
# job matrix for build jobs
<<: [*realData_tag, *check_merge_request, *build_and_test]
variables:
<<: [*mergeRequestVariables, *realData_variables]

Pierre-Alain Loizeau
committed
CbmRoot_Merge_mcbm:
<<: [*mcbm_tag, *check_merge_request_mcbm, *build_and_test_mcbm]
variables:
<<: [*mergeRequestVariables, *mcbm_variables]
CbmRoot_Merge_Singularity_debian10_apr21:
<<: [*singularity_tag, *check_merge_request, *build_and_test]
variables:
<<: [*mergeRequestVariables, *singularity_debian10_variables_apr21]
CbmRoot_Merge_Singularity_debian11_apr21:
<<: [*singularity_tag, *check_merge_request, *build_and_test]
variables:
<<: [*mergeRequestVariables, *singularity_debian11_variables_apr21]
CbmRoot_Merge_Singularity_centos7_apr21:
<<: [*singularity_tag, *check_merge_request, *build_and_test]
variables:
<<: [*mergeRequestVariables, *singularity_centos7_variables_apr21]
CbmRoot_Merge_macosx_12:
<<: [*macosx_tag, *check_merge_request, *build_and_test]
variables:
<<: [*mergeRequestVariables, *macosx_12_variables]
<<: [*macosx_tag, *check_merge_request, *build_and_test]
<<: [*mergeRequestVariables, *macosx_11_variables]
CbmRoot_Merge_macosx_1015:
<<: [*macosx_tag, *check_merge_request, *build_and_test]
CbmRoot_Continuous:
<<: [*linux_tag, *check_merge, *build_and_test]
variables:
<<: [*mergeVariables, *linux_variables]

Pierre-Alain Loizeau
committed
Florian Uhlig
committed
InformCodeOwners:
stage: finalise
tags:
Florian Uhlig
committed
only:
refs:
- merge_requests
variables:
- $CI_MERGE_REQUEST_PROJECT_PATH == "computing/cbmroot" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "master"
script:
# Get the upstream repository manually. I did not find any other way to have it for
# comparison
- scripts/connect_upstream_repo.sh $CI_MERGE_REQUEST_PROJECT_URL
- git fetch upstream
- scripts/inform_codeowners.sh upstream
pages:
stage: documentation
image: alpine
tags:
- docker
script:
- doxygen doxygen/cbmDoxyfile.conf
- mv html-doc/html public/
artifacts:
paths:
- public
only: