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=d1f978a82cc36f321d6cec47cb8c6bda3c324e15;hb=refs%2Fheads%2Fmaster;hpb=28b6138af1c97b9ad32206c6966a75f11b7a6fc2 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 d1f978a8..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,3 +1,4 @@ +# C shared library published as deb/rpm to PackageCloud.io --- - project: name: ric-plt-lib-rmr-project-view @@ -5,48 +6,95 @@ views: - project-view -- rmr_docker_common: &rmr_docker_common - # values apply to all RIC docker-build projects. - # factored out in case rmr needs multiple projects. - # use a specific name to prevent reuse attempts - # because anchors don't cross document boundaries. - name: rmr-docker-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 + # jenkins job name prefix + project-name: ric-plt-lib-rmr + # test scripts depend on this name + build-dir: $WORKSPACE/.build + # Use ubuntu base for cmake v3 + # Use docker variant for packagecloud ruby gem build-node: ubuntu1804-docker-4c-4g - # pull from the public mirror + releases registry - container-public-registry: nexus3.o-ran-sc.org:10001 - # push to the staging repo because all builds are RCs - container-push-registry: nexus3.o-ran-sc.org:10004 + # 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 every commit +- project: + <<: *rmr_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: - master: branch: master +# development library - package and publish - project: - name: ric-plt-lib-rmr - # git repo - project: ric-plt/lib/rmr - # jenkins job name prefix - project-name: '{name}' - # use host network to clone from our gerrit - docker-build-args: '--network=host -f ci/Dockerfile' - # image name - docker-name: '{name}' - # image tag; use a fixed value - container-tag-method: latest - # maven settings file has docker credentials - mvn-settings: ric-plt-lib-rmr-settings - # copy deb to Jenkins filesystem - post_docker_build_script: !include-raw-escape: - - shell/copy-rmr-packages.sh + <<: *rmr_common + 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: - # TODO: define a merge template to push package, not image - - gerrit-docker-verify - <<: *rmr_docker_common + - gerrit-cmake-packagecloud-stage + stream: + - master: + branch: master +# runtime library - package and publish - project: - name: ric-plt-lib-rmr-info - project: ric-plt/lib/rmr - project-name: ric-plt-lib-rmr + <<: *rmr_common + 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-cmake-packagecloud-stage + stream: + - master: + branch: master + +# promote deb/rpm from staging to release at PackageCloud.io +- project: + <<: *rmr_common + name: ric-plt-lib-rmr-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-sonarqube + <<: *rmr_common + 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/rmr + sonar.cfamily.build-wrapper-output=$WORKSPACE/bw-output + sonar.cfamily.gcov.reportsPath=test + sonar.cfamily.threads=2 jobs: - - gerrit-info-yaml-verify + - gerrit-cmake-sonarqube