-
Administrator authored
For the continuous tests rerun failed tests a second time. This should reduce the number of failing test pipelines. In most cases of failing tests the Geant3 simulations crash due to the well known memory error. If these tests are restarted they normally work without problem. Since the feature to restart tests is only available with cmake 3.17 change the scripts of the CI pipeline to use at least this version.
Administrator authoredFor the continuous tests rerun failed tests a second time. This should reduce the number of failing test pipelines. In most cases of failing tests the Geant3 simulations crash due to the well known memory error. If these tests are restarted they normally work without problem. Since the feature to restart tests is only available with cmake 3.17 change the scripts of the CI pipeline to use at least this version.
.gitlab-ci.yml 9.61 KiB
stages:
- checkRepository
- checkFormat
- build
- finalise
- documentation
RebaseCheck:
stage: checkRepository
variables:
GIT_DEPTH: 100
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
# 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
variables:
GIT_DEPTH: 100
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
# 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