Migrate ric-plt/lib/rmr CMake build to global-jjb
[ci-management.git] / jjb / ric-plt-lib-rmr / ric-plt-lib-rmr.yaml
1 # The ric-plt/lib/rmr repository contains two projects:
2 # 1) C shared library published as deb/rpm to PackageCloud.io
3 # 2) Python bindings published as package to PyPI.org
4 ---
5 - project:
6     name: ric-plt-lib-rmr-project-view
7     project-name: ric-plt-lib-rmr
8     views:
9       - project-view
10
11 - project:
12     name: ric-plt-lib-rmr-info
13     project: ric-plt/lib/rmr
14     project-name: ric-plt-lib-rmr
15     build-node: centos7-builder-1c-1g
16     jobs:
17       - gerrit-info-yaml-verify
18
19 - rmr_common: &rmr_common
20     name: rmr-common
21     # git repo
22     project: ric-plt/lib/rmr
23     # maven settings file has credentials to archive artifacts
24     mvn-settings: ric-plt-lib-rmr-settings
25
26 ### RMR C LIBRARY ###
27
28 - rmr_c_common: &rmr_c_common
29     name: rmr-c-common
30     # jenkins job name prefix
31     project-name: ric-plt-lib-rmr-c
32     # test scripts depend on this name
33     build-dir: $WORKSPACE/.build
34     # Use ubuntu base for cmake v3
35     # Use docker variant for packagecloud ruby gem
36     build-node: ubuntu1804-docker-4c-4g
37     # install alien package to build RPMS on ubuntu
38     pre-build: !include-raw-escape:
39       - ../shell/install-deb-alien.sh
40     # exclude irrelevant changes
41     gerrit_trigger_file_paths:
42       - compare-type: REG_EXP
43         pattern: '^((?!src/bindings|\/COMMIT_MSG).)*$'
44
45 # verify every commit
46 - project:
47     <<: *rmr_common
48     <<: *rmr_c_common
49     name: ric-plt-lib-rmr-c-verify
50     project-name: ric-plt-lib-rmr-c
51     cmake-opts: -DDEV_PKG=1 -DBUILD_DOC=1
52     # skip install in cmake-build.sh
53     install: false
54     make-opts: package test ARGS=-V
55     jobs:
56       - gerrit-cmake-verify
57     stream:
58       - master:
59           branch: master
60
61 # development library - package and publish
62 - project:
63     <<: *rmr_common
64     <<: *rmr_c_common
65     name: ric-plt-lib-rmr-c-dev
66     project-name: ric-plt-lib-rmr-c-dev
67     cmake-opts: -DDEV_PKG=1
68     make-opts: package ARGS=-V
69     install-prefix: /usr/local
70     jobs:
71       - gerrit-cmake-packagecloud-stage
72     stream:
73       - master:
74           branch: master
75
76 # runtime library - package and publish
77 - project:
78     <<: *rmr_common
79     <<: *rmr_c_common
80     name: ric-plt-lib-rmr-c-rt
81     project-name: ric-plt-lib-rmr-c-rt
82     cmake-opts: -DDEV_PKG=0
83     make-opts: package ARGS=-V
84     install-prefix: /usr/local
85     jobs:
86       - gerrit-cmake-packagecloud-stage
87     stream:
88       - master:
89           branch: master
90
91 # promote deb/rpm from staging to release at PackageCloud.io
92 - project:
93     <<: *rmr_common
94     <<: *rmr_c_common
95     name: ric-plt-lib-rmr-c-release
96     # release uses sigul which requires centos
97     build-node: centos7-builder-1c-1g
98     jobs:
99       - gerrit-packagecloud-release-verify
100       - gerrit-packagecloud-release-merge
101
102 # analyze C code and test coverage
103 - project:
104     name: ric-plt-lib-rmr-c-sonarqube
105     <<: *rmr_common
106     <<: *rmr_c_common
107     make-opts: test ARGS=-V
108     sonar-project-file: ""
109     sonar-properties: |
110         sonar.login={sonarcloud_api_token}
111         sonar.projectKey={sonarcloud_project_organization}_{project-name}
112         sonar.projectName={project-name}
113         sonar.organization={sonarcloud_project_organization}
114         sonar.build.sourceEncoding=UTF-8
115         sonar.sources=src/rmr
116         sonar.cfamily.build-wrapper-output=$WORKSPACE/bw-output
117         sonar.cfamily.gcov.reportsPath=test
118     jobs:
119       - gerrit-cmake-sonarqube
120
121 ### RMR PYTHON PACKAGE ###
122
123 - rmr_py_common: &rmr_py_common
124     name: rmr-py-common
125     # jenkins job name prefix
126     project-name: ric-plt-lib-rmr-py
127     # the pre-build-script installs RHEL packages
128     build-node: centos7-builder-1c-1g
129     # install prereqs
130     pre-build-script: !include-raw-escape: ../shell/install-rpm-nng-rmr.sh
131     python-version: python3.6
132     # bindings live in a subdirectory
133     tox-dir: src/bindings/rmr-python
134     gerrit_trigger_file_paths:
135       - compare-type: REG_EXP
136         pattern: 'src/bindings/rmr-python/.*'
137
138 # verify py changes on every branch
139 - project:
140     <<: *rmr_common
141     <<: *rmr_py_common
142     name: ric-plt-lib-rmr-py-verify
143     stream:
144       - all:
145           branch: '*'
146     jobs:
147       - gerrit-pypi-verify
148
149 # build and publish distributions to test.pypi.org from master
150 - project:
151     <<: *rmr_common
152     <<: *rmr_py_common
153     name: ric-plt-lib-rmr-py-merge
154     stream:
155       - master:
156           branch: master
157     jobs:
158       - gerrit-pypi-merge
159
160 # promote package from test.pypi.org to pypi.org
161 - project:
162     <<: *rmr_common
163     <<: *rmr_py_common
164     name: ric-plt-lib-rmr-py-release
165     jobs:
166       - '{project-name}-gerrit-pypi-release-jobs'
167
168 # analyze Py code and test coverage
169 - project:
170     <<: *rmr_common
171     <<: *rmr_py_common
172     name: ric-plt-lib-rmr-py-sonarqube
173     sonar-project-file: ""
174     sonar-properties: |
175         sonar.login={sonarcloud_api_token}
176         sonar.projectKey={sonarcloud_project_organization}_{project-name}
177         sonar.projectName={project-name}
178         sonar.organization={sonarcloud_project_organization}
179         sonar.build.sourceEncoding=UTF-8
180         sonar.sources=src/bindings/rmr-python
181         sonar.exclusions=setup.py,tests/*.py
182         sonar.python.coverage.reportPaths=coverage.xml
183     jobs:
184       - gerrit-tox-sonarqube