honeycomb.yaml revision 69b95110
1---
2- project:
3    name: honeycomb
4    jobs:
5      - 'honeycomb-verify-{stream}-{os}'
6      - 'honeycomb-merge-{stream}-{os}'
7      - 'honeycomb-benchmark-master-{os}'
8    project: 'honeycomb'
9    os:
10      - ubuntu1804:
11          repo-os-part: 'ubuntu.bionic.main'
12      - ubuntu1604:
13          repo-os-part: 'ubuntu.xenial.main'
14
15    stream:
16      - master:
17          branch: 'master'
18          repo-stream-part: 'master'
19      - '1807':
20          branch: 'stable/1807'
21          repo-stream-part: 'stable.1807'
22      - '1810':
23          branch: 'stable/1810'
24          repo-stream-part: 'stable.1810'
25      - '1901':
26          branch: 'stable/1901'
27          repo-stream-part: 'stable.1901'
28      - '1904':
29          branch: 'stable/1904'
30          repo-stream-part: 'stable.1904'
31
32- project:
33    name: honeycomb-view
34    views:
35      - project-view
36    project-name: honeycomb
37
38- job-template:
39    name: 'honeycomb-verify-{stream}-{os}'
40    project-type: maven
41    node: '{os}-basebuild-4c-4g'
42    concurrent: true
43    jdk: openjdk8-{os}
44
45    build-discarder:
46      daysToKeep: '{build-days-to-keep}'
47      numToKeep: '{build-num-to-keep}'
48      artifactDaysToKeep: '{build-artifact-days-to-keep}'
49      artifactNumToKeep: '{build-artifact-num-to-keep}'
50
51    parameters:
52      - project-parameter:
53          project: '{project}'
54      - gerrit-parameter:
55          branch: '{branch}'
56      - os-parameter:
57          os: '{os}'
58
59    scm:
60      - gerrit-trigger-scm:
61          credentials-id: 'jenkins-gerrit-credentials'
62          refspec: '$GERRIT_REFSPEC'
63          choosing-strategy: 'gerrit'
64
65    wrappers:
66      - fdio-infra-wrappers:
67          build-timeout: '{build-timeout}'
68
69    triggers:
70      - gerrit-trigger-patch-submitted:
71          name: 'honeycomb'
72          branch: '{branch}'
73
74    maven:
75      maven-name: 'mvn36'
76      root-pom: 'pom.xml'
77      # yamllint disable-line rule:line-length
78      goals: 'clean install -V -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r  -Dmerge site'
79      maven-opts: '-Xmx2048m -Dmaven.compile.fork=true'
80      settings: 'honeycomb-settings'
81      settings-type: cfp
82      global-settings: 'global-settings'
83      global-settings-type: cfp
84
85    publishers:
86      - email-notification:
87          email-prefix: '[honeycomb]'
88      - fdio-infra-shiplogs:
89          maven-version: 'mvn36'
90
91- job-template:
92    name: 'honeycomb-merge-{stream}-{os}'
93    project-type: maven
94    node: '{os}-basebuild-4c-4g'
95    jdk: openjdk8-{os}
96
97    build-discarder:
98      daysToKeep: '{build-days-to-keep}'
99      numToKeep: '{build-num-to-keep}'
100      artifactDaysToKeep: '{build-artifact-days-to-keep}'
101      artifactNumToKeep: '{build-artifact-num-to-keep}'
102
103    parameters:
104      - project-parameter:
105          project: '{project}'
106      - os-parameter:
107          os: '{os}'
108      - maven-project-parameter:
109          maven: 'mvn36'
110      - maven-exec:
111          maven-version: 'mvn36'
112      - repo-name-parameter:
113          repo-name: '{repo-stream-part}.{repo-os-part}'
114
115    scm:
116      - gerrit-trigger-scm:
117          credentials-id: 'jenkins-gerrit-credentials'
118          refspec: ''
119          choosing-strategy: 'default'
120
121    wrappers:
122      - ssh-agent-credentials:
123          users:
124            - 'jenkins-gerrit-credentials'
125      - fdio-infra-wrappers:
126          build-timeout: '{build-timeout}'
127
128    triggers:
129      - gerrit-trigger-patch-merged:
130          name: 'honeycomb'
131          branch: '{branch}'
132
133    maven:
134      maven-name: 'mvn36'
135      root-pom: 'pom.xml'
136      # yamllint disable-line rule:line-length
137      goals: 'clean install -V -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r  -Dmerge -Dsonar site site:deploy'
138      maven-opts: '-Xmx2048m -Dmaven.compile.fork=true'
139      settings: 'honeycomb-settings'
140      settings-type: cfp
141      global-settings: 'global-settings'
142      global-settings-type: cfp
143
144    postbuilders:
145      - maven-target:
146          maven-version: 'mvn36'
147          goals: '--version'
148          settings: 'honeycomb-settings'
149          settings-type: cfp
150          global-settings: 'global-settings'
151          global-settings-type: cfp
152      - provide-maven-settings:
153          settings-file: 'honeycomb-settings'
154          global-settings-file: 'global-settings'
155
156    reporters:
157      - findbugs
158
159    publishers:
160      - sonar:
161          jdk: 'openjdk8-{os}'
162          language: 'java'
163          branch: '{stream}'
164      - email-notification:
165          email-prefix: '[honeycomb]'
166      - maven-deploy:
167          id: ''
168          unique-version: true
169          deploy-unstable: false
170      - fdio-infra-shiplogs:
171          maven-version: 'mvn36'
172
173- job-template:
174    name: 'honeycomb-benchmark-master-{os}'
175    project-type: maven
176    node: '{os}-basebuild-4c-4g'
177    jdk: openjdk8-{os}
178
179    build-discarder:
180      daysToKeep: '{build-days-to-keep}'
181      numToKeep: '{build-num-to-keep}'
182      artifactDaysToKeep: '{build-artifact-days-to-keep}'
183      artifactNumToKeep: '{build-artifact-num-to-keep}'
184
185    parameters:
186      - project-parameter:
187          project: '{project}'
188      - os-parameter:
189          os: '{os}'
190      - maven-project-parameter:
191          maven: 'mvn36'
192      - maven-exec:
193          maven-version: 'mvn36'
194      - repo-name-parameter:
195          repo-name: 'master.{repo-os-part}'
196
197    scm:
198      - git-scm:
199          credentials-id: 'jenkins-gerrit-credentials'
200          branch: 'master'
201
202    wrappers:
203      - ssh-agent-credentials:
204          users:
205            - 'jenkins-gerrit-credentials'
206      - fdio-infra-wrappers:
207          build-timeout: '{build-timeout}'
208
209    triggers:
210      - timed: '@daily'
211
212    maven:
213      maven-name: 'mvn36'
214      root-pom: 'pom.xml'
215      # yamllint disable-line rule:line-length
216      goals: 'clean install -V -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r  -Dmerge -Pbenchmark'
217      maven-opts: '-Xmx2048m -Dmaven.compile.fork=true'
218      settings: 'honeycomb-settings'
219      settings-type: cfp
220      global-settings: 'global-settings'
221      global-settings-type: cfp
222
223    publishers:
224      - plot:
225          - title: 'Infrastructure CFG write benchmark (simple-container)'
226            yaxis: 'ops/second'
227            csv-file-name: 'simple-container.csv'
228            group: 'infra-bench'
229            keep-records: true
230            numbuilds: '20'
231            style: 'line'
232            use-description: false
233            series:
234              - file: 'infra/it/benchmark/target/simple-container.csv'
235                display-table: true
236                format: 'csv'
237                inclusion-flag: 'include-by-string'
238                # yamllint disable-line rule:line-length
239                exclude: 'persistence=true freq=1,persistence=true freq=10,persistence=false freq=1,persistence=false freq=10'
240          - title: 'Infrastructure CFG write benchmark (list-in-container)'
241            yaxis: 'ops/second'
242            csv-file-name: 'list-in-container.csv'
243            group: 'infra-bench'
244            keep-records: true
245            numbuilds: '20'
246            style: 'line'
247            use-description: false
248            series:
249              - file: 'infra/it/benchmark/target/list-in-container.csv'
250                display-table: true
251                format: 'csv'
252                inclusion-flag: 'include-by-string'
253                # yamllint disable-line rule:line-length
254                exclude: 'persistence=true freq=1,persistence=true freq=10,persistence=false freq=1,persistence=false freq=10'
255          # yamllint disable-line rule:line-length
256          - title: 'Infrastructure CFG write benchmark (complex-list-in-container)'
257            yaxis: 'ops/second'
258            csv-file-name: 'complex-list-in-container.csv'
259            group: 'infra-bench'
260            keep-records: true
261            numbuilds: '20'
262            style: 'line'
263            use-description: false
264            series:
265              - file: 'infra/it/benchmark/target/complex-list-in-container.csv'
266                display-table: true
267                format: 'csv'
268                inclusion-flag: 'include-by-string'
269                # yamllint disable-line rule:line-length
270                exclude: 'persistence=true freq=1,persistence=true freq=10,persistence=false freq=1,persistence=false freq=10'
271          - title: 'Infrastructure CFG read benchmark'
272            yaxis: 'ops/second'
273            csv-file-name: 'operational-read.csv'
274            group: 'infra-bench'
275            keep-records: true
276            numbuilds: '20'
277            style: 'line'
278            use-description: false
279            series:
280              - file: 'infra/it/benchmark/target/operational-read.csv'
281                display-table: true
282                format: 'csv'
283                inclusion-flag: 'include-by-string'
284                # yamllint disable-line rule:line-length
285                exclude: 'simple-container,list-in-container,complex-list-in-container'
286
287      - fdio-infra-shiplogs:
288          maven-version: 'mvn36'
289