# CI pipeline configuration

default:
  image: gcc

# 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
      - cd src
      - echo "Running make (ONLY C++ CODE)"
      #- make conly

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
      - 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
      - cd build/sphere
      #- cp ../../test_data/sphere/OSPH .
      - echo "Comparing output of SPHERE"
      #- python3 ../../src/scripts/pycompare.py --ffile=OSPH --cfile=c_OSPH --html
      - cd ../cluster
      - echo "Comparing output of CLUSTER"
      #- cp ../../test_data/cluster/OCLU .
      #- python3 ../../src/scripts/pycompare.py --ffile=OCLU --cfile=c_OCLU --html