Skip to content
Snippets Groups Projects
.gitlab-ci.yml 5.17 KiB
stages:
  - test
  - build
  - docu

.before_script_template: &before_script_template
  before_script:
    - 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
  tags: 
    - ros2
  cache:
    key: cache-$CI_COMMIT_REF_SLUG
    paths:
      - install
  <<: *before_script_template
  script:
    - source ./install/setup.bash
    - pip3 install pytest pytest-cov netCDF4 ros2-numpy Pillow pyometiff scipy
    - python3 -m pytest ./rq_controller/test/ --cov=rq_controller --cov-report term --cov-report xml:controller_coverage.xml --junitxml=controller_report.xml --cov-report html:controller_cov_html
  coverage: '/(?i)total.*? (100(?:\.0+)?\%|[1-9]?\d(?:\.\d+)?\%)$/'

  artifacts:
    when: always
    paths:
      - controller_report.xml
      - controller_cov_html
    reports:
      junit: controller_report.xml
      coverage_report:
        coverage_format: cobertura
        path: controller_coverage.xml

rq-pytests-communication:
  stage: test
  image: ros:humble
  tags: 
    - ros2
  cache:
    key: cache-$CI_COMMIT_REF_SLUG
    paths:
      - install
  dependencies:
    - rq-pytests
  script:
    - mkdir src
    - cd src
    - 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
    - cd ..
    - git clone https://gitlab-ci-token:${CI_JOB_TOKEN}@mygit.th-deg.de/roboct/robo_quality/rq_workflow
    - colcon build --merge-install
    - source ./install/setup.bash
    - apt-get update && apt-get install -y python3-pip
    - pip3 install pytest pytest-cov netCDF4 ros2-numpy Pillow pyometiff scipy