# CI pipeline configuration default: image: debian:bookworm-slim # Switch from branch pipelines to merge request pipelines when a merge request is created workflow: rules: # Ensures next rules do not block triggered pipelines - if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS && $CI_PIPELINE_SOURCE == "push" when: never # always run for merge requests - if: $CI_PIPELINE_SOURCE == "merge_request_event" # never run a branch pipeline if there is an open merge request for that branch - if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS when: never # the only allowed branch pipeline is that on the default branch - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH stages: - build - run - test building_stage: stage: build allow_failure: false artifacts: paths: - build/cluster/* - build/sphere/* - build/trapping/* exclude: - ".git*" - ".git/**/*" expire_in: 2 hours script: # bash commands to be executed - pwd - hostname - echo $CI_COMMIT_SHA - echo $CI_COMMIT_BRANCH - echo "Getting system info ..." - cat /etc/os-release - echo "Updating system" - yum check-update - yum update - echo "Installing dependencies" - yum install -y g++ gfortran make - cd src - echo "Running make" - make running_stage: stage: run allow_failure: false needs: - job: building_stage artifacts: paths: - build/cluster/* - build/sphere/* - build/trapping/* exclude: - ".git*" - ".git/**/*" expire_in: 2 hours script: # bash commands to be executed - pwd - hostname - echo $CI_COMMIT_SHA - echo $CI_COMMIT_BRANCH - echo "Updating system" - yum check-update - yum update - echo "Installing dependencies" - yum install -y g++ gfortran gdb - cd build/sphere - echo "Running np_sphere" - chmod +x np_sphere - ./np_sphere - cd ../cluster - echo "Running np_cluster" - chmod +x np_cluster - ./np_cluster testing_stage: stage: test allow_failure: true needs: - job: running_stage artifacts: paths: - build/cluster/pycompare.html - build/sphere/pycompare.html exclude: - ".git*" - ".git/**/*" expire_in: 2 hours script: # bash commands to be executed - pwd - hostname - echo $CI_COMMIT_SHA - echo $CI_COMMIT_BRANCH - echo "Updating system" - yum check-update - yum update - echo "Installing dependencies ..." - apt install -y python3 - cd build/sphere - export FFILE=../../test_data/sphere/OSPH - echo "Comparing output of SPHERE" - python3 ../../src/scripts/pycompare.py --ffile=$FFILE --cfile=c_OSPH --html - cd ../cluster - echo "Comparing output of CLUSTER" - export FFILE=../../test_data/cluster/OCLU - python3 ../../src/scripts/pycompare.py --ffile=$FFILE --cfile=c_OCLU --html