X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?p=ci-management.git;a=blobdiff_plain;f=jjb%2Fric-plt-lib-rmr%2Fric-plt-lib-rmr.yaml;h=2c4500feec9a837add696f7550cb0411b6cefa5b;hp=60c2f2b9feb5bd0bc20f6fa413c9cfe82c301d58;hb=refs%2Fheads%2Fmaster;hpb=ee02d431e90ef3a2ab1cdee4898949129b5bb5cb diff --git a/jjb/ric-plt-lib-rmr/ric-plt-lib-rmr.yaml b/jjb/ric-plt-lib-rmr/ric-plt-lib-rmr.yaml index 60c2f2b9..2c4500fe 100644 --- a/jjb/ric-plt-lib-rmr/ric-plt-lib-rmr.yaml +++ b/jjb/ric-plt-lib-rmr/ric-plt-lib-rmr.yaml @@ -1,6 +1,4 @@ -# 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 +# C shared library published as deb/rpm to PackageCloud.io --- - project: name: ric-plt-lib-rmr-project-view @@ -8,159 +6,95 @@ 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 +- _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 + project-name: ric-plt-lib-rmr # 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 + build-dir: $WORKSPACE/.build + # Use ubuntu base for cmake v3 + # Use docker variant for packagecloud ruby gem + build-node: ubuntu1804-docker-4c-4g + # install alien package to build RPMS on ubuntu + pre-build: !include-raw-escape: + - ../shell/install-deb-alien.sh # exclude irrelevant changes gerrit_trigger_file_paths: - compare-type: REG_EXP pattern: '^((?!src/bindings|\/COMMIT_MSG).)*$' -# verify c changes on every branch +# verify every commit - project: - name: ric-plt-lib-rmr-c-verify <<: *rmr_common - <<: *rmr_c_common + name: ric-plt-lib-rmr-verify + cmake-opts: -DDEV_PKG=1 -DBUILD_DOC=1 + # skip install in cmake-build.sh + install: false + make-opts: package test ARGS=-V jobs: - gerrit-cmake-verify stream: - - all: - branch: '*' + - master: + branch: master -# build deb/rpm using Docker and publish to PackageCloud.io -# on merge to master branch +# development library - package and publish - 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' + name: ric-plt-lib-rmr-dev + project-name: ric-plt-lib-rmr-dev + cmake-opts: -DDEV_PKG=1 + make-opts: package ARGS=-V + install-prefix: /usr/local jobs: - - oran-gerrit-docker-ci-pc-merge + - gerrit-cmake-packagecloud-stage stream: - master: branch: master -# promote deb/rpm from staging to release at PackageCloud.io +# runtime library - package and publish - 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 + name: ric-plt-lib-rmr-rt + project-name: ric-plt-lib-rmr-rt + cmake-opts: -DDEV_PKG=0 + make-opts: package ARGS=-V + install-prefix: /usr/local 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 + - gerrit-cmake-packagecloud-stage stream: - master: branch: master - jobs: - - gerrit-pypi-merge -# promote package from test.pypi.org to pypi.org +# promote deb/rpm from staging to release at PackageCloud.io - project: <<: *rmr_common - <<: *rmr_py_common - name: ric-plt-lib-rmr-py-release + name: ric-plt-lib-rmr-release + # release uses sigul which requires centos + build-node: centos7-builder-1c-1g jobs: - - '{project-name}-gerrit-pypi-release-jobs' + - gerrit-packagecloud-release-verify + - gerrit-packagecloud-release-merge -# analyze Py code and test coverage +# analyze C code and test coverage - project: + name: ric-plt-lib-rmr-sonarqube <<: *rmr_common - <<: *rmr_py_common - name: ric-plt-lib-rmr-py-sonarqube + cmake-opts: -DDEV_PKG=1 + make-opts: package test ARGS=-V 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 + 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 + sonar.cfamily.threads=2 jobs: - - gerrit-tox-sonarqube + - gerrit-cmake-sonarqube