stages:
  - test
  - build
  - docu

cache:
  key: cache-$CI_COMMIT_REF_SLUG
  paths: 
    - /home/

.before_script_template: &before_script_template
  before_script:
    - cd /home/
    - git clone https://gitlab-ci-token:${CI_JOB_TOKEN}@mygit.th-deg.de/roboct/robo_quality/rq_interfaces
    - git clone https://gitlab-ci-token:${CI_JOB_TOKEN}@mygit.th-deg.de/roboct/robo_quality/rq_hardware
    - git clone https://gitlab-ci-token:${CI_JOB_TOKEN}@mygit.th-deg.de/roboct/robo_quality/rq_controller
    - git clone https://gitlab-ci-token:${CI_JOB_TOKEN}@mygit.th-deg.de/roboct/robo_quality/rq_ddetection
    - git clone https://gitlab-ci-token:${CI_JOB_TOKEN}@mygit.th-deg.de/roboct/robo_quality/rq_trajectory
    - git clone https://gitlab-ci-token:${CI_JOB_TOKEN}@mygit.th-deg.de/roboct/robo_quality/rq_reconstruction
    - apt-get update && apt-get install -y wget python3-pip
    - rosdep install --from-paths . -y --ignore-src
    - colcon build --merge-install

rq-pytests:
  stage: test
  image: ros:humble
  <<: *before_script_template
  script:
    - pip3 install pytest pytest-cov netCDF4 ros2-numpy Pillow pyometiff scipy
    # Uncomment the following line to run tests
    # - python3 -m pytest ./rq_controller/test/ --junitxml=report.xml

build-ros:
  stage: build
  image: ros:humble
  dependencies:
    - rq-pytests
  script:
    - cd /home/
    - source ./install/setup.bash
  artifacts:
    when: always
    paths:
      - /home/install/
    name: ubuntu_humble

create-docu:
  stage: docu
  image: ros:humble
  dependencies:
    - rq-pytests
  before_script:
    - cd /home/
    - apt-get update && apt-get install -y wget python3-pip
    - pip3 install pdoc3 netCDF4 ros2-numpy Pillow pyometiff scipy open3d pathfinding3d
    - git clone https://github.com/wittlsn/aRTist-PythonLib.git -b artist_thd_wip
    - pip3 install ./aRTist-PythonLib/
  script:
    - cd /home/
    - source ./install/setup.bash
    - mkdir -p doc
    - python3 -m pdoc --html rq_controller -o=./doc/rq_controller -c show_source_code=True
    # Uncomment the following line to generate documentation for rq_hardware
    # - python3 -m pdoc --html rq_hardware -o=./doc/rq_hardware -c show_source_code=True
  artifacts:
    when: always
    paths:
      - /home/doc/
    name: rq_docstrings
