Skip to content
Snippets Groups Projects
  • Administrator's avatar
    884e0cea
    Improve CI · 884e0cea
    Administrator authored and Florian Uhlig's avatar Florian Uhlig committed
    Use a different installation directory For the test of the installation to
    allow to remove also the build directory.
    
    Test installation also on Debian 10
    
    There was a problem when running CbmRoot from the installation directory with
    Debian10. So add also the installation test for Debian10.
    884e0cea
    History
    Improve CI
    Administrator authored and Florian Uhlig's avatar Florian Uhlig committed
    Use a different installation directory For the test of the installation to
    allow to remove also the build directory.
    
    Test installation also on Debian 10
    
    There was a problem when running CbmRoot from the installation directory with
    Debian10. So add also the installation test for Debian10.
.gitlab-ci.yml 12.01 KiB
stages:
  - checkRepository
  - checkFormat
  - build
  - finalise
  - documentation

RebaseCheck:
  stage: checkRepository
  variables:
    GIT_DEPTH: 200
  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: 200
  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