NONRTRIC-946: Servicemanager - build capif as a library
[ci-management.git] / jjb / ric-plt-lib-rmr / ric-plt-lib-rmr.yaml
1 # C shared library published as deb/rpm to PackageCloud.io
2 ---
3 - project:
4     name: ric-plt-lib-rmr-project-view
5     project-name: ric-plt-lib-rmr
6     views:
7       - project-view
8
9 - _rmr_common: &rmr_common
10     name: rmr-common
11     # git repo
12     project: ric-plt/lib/rmr
13     # maven settings file has credentials to archive artifacts
14     mvn-settings: ric-plt-lib-rmr-settings
15     # jenkins job name prefix
16     project-name: ric-plt-lib-rmr
17     # test scripts depend on this name
18     build-dir: $WORKSPACE/.build
19     # Use ubuntu base for cmake v3
20     # Use docker variant for packagecloud ruby gem
21     build-node: ubuntu1804-docker-4c-4g
22     # install alien package to build RPMS on ubuntu
23     pre-build: !include-raw-escape:
24       - ../shell/install-deb-alien.sh
25     # exclude irrelevant changes
26     gerrit_trigger_file_paths:
27       - compare-type: REG_EXP
28         pattern: '^((?!src/bindings|\/COMMIT_MSG).)*$'
29
30 # verify every commit
31 - project:
32     <<: *rmr_common
33     name: ric-plt-lib-rmr-verify
34     cmake-opts: -DDEV_PKG=1 -DBUILD_DOC=1
35     # skip install in cmake-build.sh
36     install: false
37     make-opts: package test ARGS=-V
38     jobs:
39       - gerrit-cmake-verify
40     stream:
41       - master:
42           branch: master
43
44 # development library - package and publish
45 - project:
46     <<: *rmr_common
47     name: ric-plt-lib-rmr-dev
48     project-name: ric-plt-lib-rmr-dev
49     cmake-opts: -DDEV_PKG=1
50     make-opts: package ARGS=-V
51     install-prefix: /usr/local
52     jobs:
53       - gerrit-cmake-packagecloud-stage
54     stream:
55       - master:
56           branch: master
57
58 # runtime library - package and publish
59 - project:
60     <<: *rmr_common
61     name: ric-plt-lib-rmr-rt
62     project-name: ric-plt-lib-rmr-rt
63     cmake-opts: -DDEV_PKG=0
64     make-opts: package ARGS=-V
65     install-prefix: /usr/local
66     jobs:
67       - gerrit-cmake-packagecloud-stage
68     stream:
69       - master:
70           branch: master
71
72 # promote deb/rpm from staging to release at PackageCloud.io
73 - project:
74     <<: *rmr_common
75     name: ric-plt-lib-rmr-release
76     # release uses sigul which requires centos
77     build-node: centos7-builder-1c-1g
78     jobs:
79       - gerrit-packagecloud-release-verify
80       - gerrit-packagecloud-release-merge
81
82 # analyze C code and test coverage
83 - project:
84     name: ric-plt-lib-rmr-sonarqube
85     <<: *rmr_common
86     cmake-opts: -DDEV_PKG=1
87     make-opts: package test ARGS=-V
88     sonar-project-file: ""
89     sonar-properties: |
90       sonar.login={sonarcloud_api_token}
91       sonar.projectKey={sonarcloud_project_organization}_{project-name}
92       sonar.projectName={project-name}
93       sonar.organization={sonarcloud_project_organization}
94       sonar.build.sourceEncoding=UTF-8
95       sonar.sources=src/rmr
96       sonar.cfamily.build-wrapper-output=$WORKSPACE/bw-output
97       sonar.cfamily.gcov.reportsPath=test
98       sonar.cfamily.threads=2
99     jobs:
100       - gerrit-cmake-sonarqube