diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d0ec2f9f720a362a1a59730c5af8531e8d15aa22..65bee346a97f26df5bce97065d6f1296dce343e3 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,7 +1,63 @@ stages: - - check + - checkRebase + - checkFormat - build - documentation + +RebaseCheck: + stage: checkRebase + 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 + # comparisson + # Check if a rebase is needed + # If a rebase is needed stop immediately + - 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 origin/$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME) + - 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 + +FormatCheck: + 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 + # comparisson + - scripts/connect_upstream_repo.sh $CI_MERGE_REQUEST_PROJECT_URL + - git fetch upstream + - echo "export FAIRSOFT_VERSION=jun19p1" > env.sh + - echo "export FAIRROOT_VERSION=v18.2.0" >> env.sh + - echo "export SIMPATH=/cvmfs/fairroot.gsi.de/fairsoft/\${FAIRSOFT_VERSION}" >> env.sh + - echo "export FAIRROOTPATH=/cvmfs/fairroot.gsi.de/fairroot/\${FAIRROOT_VERSION}_fairsoft-\${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-8.0.1:\$SIMPATH/bin:$PATH:/cvmfs/it.gsi.de/compiler/llvm/6.0.1/bin/" >> 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 + CbmRoot_Continuous: stage: build @@ -59,30 +115,6 @@ CbmRoot_Continuous: # - find . -name "all_*.par" -delete # - cd .. -FormatCheck: - stage: check - 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 - # comparisson - - scripts/connect_upstream_repo.sh $CI_MERGE_REQUEST_PROJECT_URL - - git fetch upstream - - echo "export FAIRSOFT_VERSION=jun19p1" > env.sh - - echo "export FAIRROOT_VERSION=v18.2.0" >> env.sh - - echo "export SIMPATH=/cvmfs/fairroot.gsi.de/fairsoft/\${FAIRSOFT_VERSION}" >> env.sh - - echo "export FAIRROOTPATH=/cvmfs/fairroot.gsi.de/fairroot/\${FAIRROOT_VERSION}_fairsoft-\${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-8.0.1:\$SIMPATH/bin:$PATH:/cvmfs/it.gsi.de/compiler/llvm/6.0.1/bin/" >> 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 CbmRoot_Merge: stage: build