# 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