# The ric-plt/lib/rmr repository contains two projects:
# 1) C shared library published as deb/rpm to PackageCloud.io
# 2) Python bindings published as package to PyPI.org
---
- project:
    name: ric-plt-lib-rmr-project-view
    project-name: ric-plt-lib-rmr
    views:
      - project-view

- project:
    name: ric-plt-lib-rmr-info
    project: ric-plt/lib/rmr
    project-name: ric-plt-lib-rmr
    build-node: centos7-builder-1c-1g
    jobs:
      - gerrit-info-yaml-verify

- rmr_common: &rmr_common
    name: rmr-common
    # git repo
    project: ric-plt/lib/rmr
    # maven settings file has credentials to archive artifacts
    mvn-settings: ric-plt-lib-rmr-settings

### RMR C LIBRARY ###

- rmr_c_common: &rmr_c_common
    name: rmr-c-common
    # jenkins job name prefix
    project-name: ric-plt-lib-rmr-c
    # test scripts depend on this name
    build-dir: $WORKSPACE/build
    # use an ubuntu for its modern compiler
    build-node: ubuntu1804-builder-2c-2g
    # verify and sonar use cmake
    cmake-opts: -DDEV_PKG=1
    make-opts: install test ARGS=-V
    # exclude irrelevant changes
    gerrit_trigger_file_paths:
      - compare-type: REG_EXP
        pattern: '^((?!src/bindings|\/COMMIT_MSG).)*$'

# verify c changes on every branch
- project:
    name: ric-plt-lib-rmr-c-verify
    <<: *rmr_common
    <<: *rmr_c_common
    jobs:
      - gerrit-cmake-verify
    stream:
      - all:
          branch: '*'

# build deb/rpm using Docker and publish to PackageCloud.io
# on merge to master branch
- project:
    <<: *rmr_common
    <<: *rmr_c_common
    name: ric-plt-lib-rmr-c-package
    # need docker
    build-node: ubuntu1804-docker-4c-4g
    # image is not pushed, use simple name and tag
    docker-name: '{name}'
    container-tag-method: latest
    # use host network for network resources
    docker-build-args: '--network=host -f ci/Dockerfile'
    jobs:
      - oran-gerrit-docker-ci-pc-merge
    stream:
      - master:
          branch: master

# promote deb/rpm from staging to release at PackageCloud.io
- project:
    <<: *rmr_common
    <<: *rmr_c_common
    name: ric-plt-lib-rmr-c-release
    # release uses sigul which requires centos
    build-node: centos7-builder-1c-1g
    jobs:
      - gerrit-packagecloud-release-verify
      - gerrit-packagecloud-release-merge

# analyze C code and test coverage
- project:
    name: ric-plt-lib-rmr-c-sonar
    <<: *rmr_common
    <<: *rmr_c_common
    sonar-project-file: ""
    sonar-properties: |
        sonar.login={sonarcloud_api_token}
        sonar.projectKey={sonarcloud_project_organization}_{project-name}
        sonar.projectName={project-name}
        sonar.organization={sonarcloud_project_organization}
        sonar.build.sourceEncoding=UTF-8
        sonar.sources=src/rmr
        sonar.cfamily.build-wrapper-output=$WORKSPACE/bw-output
        sonar.cfamily.gcov.reportsPath=test
    jobs:
      - gerrit-cmake-sonarqube

### RMR PYTHON PACKAGE ###

- rmr_py_common: &rmr_py_common
    name: rmr-py-common
    # jenkins job name prefix
    project-name: ric-plt-lib-rmr-py
    # the pre-build-script installs RHEL packages
    build-node: centos7-builder-1c-1g
    # install prereqs
    pre-build-script: !include-raw-escape: ../shell/install-rpm-nng-rmr.sh
    python-version: python3.6
    # bindings live in a subdirectory
    tox-dir: src/bindings/rmr-python
    gerrit_trigger_file_paths:
      - compare-type: REG_EXP
        pattern: 'src/bindings/rmr-python/.*'

# verify py changes on every branch
- project:
    <<: *rmr_common
    <<: *rmr_py_common
    name: ric-plt-lib-rmr-py-verify
    stream:
      - all:
          branch: '*'
    jobs:
      - gerrit-pypi-verify

# build and publish distributions to test.pypi.org from master
- project:
    <<: *rmr_common
    <<: *rmr_py_common
    name: ric-plt-lib-rmr-py-merge
    stream:
      - master:
          branch: master
    jobs:
      - gerrit-pypi-merge

# promote package from test.pypi.org to pypi.org
- project:
    <<: *rmr_common
    <<: *rmr_py_common
    name: ric-plt-lib-rmr-py-release
    jobs:
      - '{project-name}-gerrit-pypi-release-jobs'

# analyze Py code and test coverage
- project:
    <<: *rmr_common
    <<: *rmr_py_common
    name: ric-plt-lib-rmr-py-sonarqube
    sonar-project-file: ""
    sonar-properties: |
        sonar.login={sonarcloud_api_token}
        sonar.projectKey={sonarcloud_project_organization}_{project-name}
        sonar.projectName={project-name}
        sonar.organization={sonarcloud_project_organization}
        sonar.build.sourceEncoding=UTF-8
        sonar.sources=src/bindings/rmr-python
        sonar.exclusions=setup.py,tests/*.py
        sonar.python.coverage.reportPaths=coverage.xml
    jobs:
      - gerrit-tox-sonarqube
