Setup honeycomb to build and push rpms on merge
[ci-management.git] / jjb / honeycomb / honeycomb.yaml
1 - project:
2     name: honeycomb
3     jobs:
4         - 'honeycomb-verify-{stream}-{os}'
5         - 'honeycomb-merge-{stream}-{os}'
6         - 'honeycomb-integration-{stream}-{os}'
7         - 'honeycomb-verify-image-{stream}-{os}'
8     project: 'honeycomb'
9     os:
10         - ubuntu1404:
11             repo-os-part: 'ubuntu.trusty.main'
12         - centos7:
13             repo-os-part: 'centos7'
14     stream:
15         - master:
16             branch: 'master'
17             repo-stream-part: 'master'
18
19 - job-template:
20     name: 'honeycomb-verify-{stream}-{os}'
21     project-type: maven
22     node: verify
23     concurrent: true
24
25     logrotate:
26         daysToKeep: '{build-days-to-keep}'
27         numToKeep: '{build-num-to-keep}'
28         artifactDaysToKeep: '{build-artifact-days-to-keep}'
29         artifactNumToKeep: '{build-artifact-num-to-keep}'
30
31     parameters:
32         - project-parameter:
33             project: '{project}'
34         - gerrit-parameter:
35             branch: '{branch}'
36         - os-parameter:
37             os: '{os}'
38
39     scm:
40         - gerrit-trigger-scm:
41             credentials-id: '{ssh-credentials}'
42             refspec: '$GERRIT_REFSPEC'
43             choosing-strategy: 'gerrit'
44
45     wrappers:
46         - build-timeout
47         - ssh-agent-credentials:
48             users:
49                 - '{ssh-credentials}'
50
51     triggers:
52         - gerrit-trigger-patch-submitted:
53             name: 'honeycomb'
54             branch: '{branch}'
55
56     prebuilders:
57         - shell: |
58             if [ "${{OS}}" == "ubuntu1404" ];then sudo update-java-alternatives -s /usr/lib/jvm/java-1.8.0-openjdk-amd64;fi
59     maven:
60         maven-name: '{mvn33}'
61         root-pom: 'pom.xml'
62         goals: 'clean install -V -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r  -Dmerge -Dkaraf.keep.unpack=true'
63         maven-opts: '-Xmx2048m -XX:MaxPermSize=256m -Dmaven.compile.fork=true'
64         settings: 'honeycomb-settings'
65         settings-type: cfp
66         global-settings: 'global-settings'
67         global-settings-type: cfp
68
69     postbuilders:
70         - shell: |
71             if [ "${{OS}}" == "ubuntu1404" ];then sudo update-java-alternatives -s /usr/lib/jvm/java-1.7.0-openjdk-amd64;fi
72
73     publishers:
74         - email-notification:
75             email-prefix: '[honeycomb]'
76
77 - job-template:
78     name: 'honeycomb-verify-image-{stream}-{os}'
79     project-type: maven
80     node: 'verify-image-{os}'
81     concurrent: true
82
83     logrotate:
84         daysToKeep: '{build-days-to-keep}'
85         numToKeep: '{build-num-to-keep}'
86         artifactDaysToKeep: '{build-artifact-days-to-keep}'
87         artifactNumToKeep: '{build-artifact-num-to-keep}'
88
89     parameters:
90         - project-parameter:
91             project: '{project}'
92         - gerrit-parameter:
93             branch: '{branch}'
94         - os-parameter:
95             os: '{os}'
96
97     scm:
98         - gerrit-trigger-scm:
99             credentials-id: '{ssh-credentials}'
100             refspec: '$GERRIT_REFSPEC'
101             choosing-strategy: 'gerrit'
102
103     wrappers:
104         - build-timeout
105         - ssh-agent-credentials:
106             users:
107                 - '{ssh-credentials}'
108
109     triggers:
110         - gerrit:
111             server-name: 'Primary'
112             trigger-on:
113                 - comment-added-contains-event:
114                     comment-contains-value: 'verify-images'
115             projects:
116               - project-compare-type: 'ANT'
117                 project-pattern: '{project}'
118                 branches:
119                   - branch-compare-type: 'ANT'
120                     branch-pattern: '**/{branch}'
121             skip-vote:
122                 successful: true
123                 failed: true
124                 unstable: true
125                 notbuilt: true
126
127     prebuilders:
128         - shell: |
129             if [ "${{OS}}" == "ubuntu1404" ];then sudo update-java-alternatives -s /usr/lib/jvm/java-1.8.0-openjdk-amd64;fi
130     maven:
131         maven-name: '{mvn33}'
132         root-pom: 'pom.xml'
133         goals: 'clean install -V -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r  -Dmerge -Dkaraf.keep.unpack=true'
134         maven-opts: '-Xmx2048m -XX:MaxPermSize=256m -Dmaven.compile.fork=true'
135         settings: 'honeycomb-settings'
136         settings-type: cfp
137         global-settings: 'global-settings'
138         global-settings-type: cfp
139
140     postbuilders:
141         - shell: |
142             if [ "${{OS}}" == "ubuntu1404" ];then sudo update-java-alternatives -s /usr/lib/jvm/java-1.7.0-openjdk-amd64;fi
143
144     publishers:
145         - email-notification:
146             email-prefix: '[honeycomb]'
147
148 - job-template:
149     name: 'honeycomb-merge-{stream}-{os}'
150     project-type: maven
151     node: merge
152     jdk: '{jdk}'
153
154     logrotate:
155         daysToKeep: '{build-days-to-keep}'
156         numToKeep: '{build-num-to-keep}'
157         artifactDaysToKeep: '{build-artifact-days-to-keep}'
158         artifactNumToKeep: '{build-artifact-num-to-keep}'
159
160     parameters:
161         - project-parameter:
162             project: '{project}'
163         - os-parameter:
164             os: '{os}'
165         - maven-project-parameter:
166             maven: '{mvn33}'
167         - repo-name-parameter:
168             repo-name: '{repo-stream-part}.{repo-os-part}'
169
170     scm:
171         - gerrit-trigger-scm:
172             credentials-id: '{ssh-credentials}'
173             refspec: ''
174             choosing-strategy: 'default'
175
176     wrappers:
177         - build-timeout
178         - ssh-agent-credentials:
179             users:
180                 - '{ssh-credentials}'
181
182     triggers:
183         - gerrit-trigger-patch-merged:
184             name: 'honeycomb'
185             branch: '{branch}'
186
187     prebuilders:
188         - shell: |
189             if [ "${{OS}}" == "ubuntu1404" ];then sudo update-java-alternatives -s /usr/lib/jvm/java-1.8.0-openjdk-amd64;fi
190
191     maven:
192         maven-name: '{mvn33}'
193         root-pom: 'pom.xml'
194         goals: 'clean install -V -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r  -Dmerge -Dkaraf.keep.unpack=true -Dsonar'
195         maven-opts: '-Xmx2048m -XX:MaxPermSize=256m -Dmaven.compile.fork=true'
196         settings: 'honeycomb-settings'
197         settings-type: cfp
198         global-settings: 'global-settings'
199         global-settings-type: cfp
200
201     postbuilders:
202         - shell:
203             !include-raw-escape:
204                 - ../scripts/maven_push_functions.sh
205                 - include-raw-honeycomb-pkg-push.sh
206         - shell: |
207             if [ "${{OS}}" == "ubuntu1404" ];then sudo update-java-alternatives -s /usr/lib/jvm/java-1.7.0-openjdk-amd64;fi
208
209     reporters:
210         - findbugs
211
212     publishers:
213         - sonar:
214             language: 'java'
215         - email-notification:
216             email-prefix: '[honeycomb]'
217         - maven-deploy:
218             id: ''
219             unique-version: true
220             deploy-unstable: false
221
222 - job-template:
223     name: 'honeycomb-integration-{stream}-{os}'
224     project-type: maven
225     node: merge
226     jdk: '{jdk}'
227
228     logrotate:
229         daysToKeep: '{build-days-to-keep}'
230         numToKeep: '{build-num-to-keep}'
231         artifactDaysToKeep: '{build-artifact-days-to-keep}'
232         artifactNumToKeep: '{build-artifact-num-to-keep}'
233
234     parameters:
235         - project-parameter:
236             project: '{project}'
237         - os-parameter:
238             os: '{os}'
239
240     scm:
241         - git-scm:
242             credentials-id: '{ssh-credentials}'
243             refspec: ''
244             branch: '{branch}'
245
246     wrappers:
247         - build-timeout
248         - ssh-agent-credentials:
249             users:
250                 - '{ssh-credentials}'
251
252     triggers:
253         - reverse:
254             jobs: 'vpp-merge-{branch}-{os}'
255             result: 'success'
256
257     prebuilders:
258         - shell: |
259             if [ "${{OS}}" == "ubuntu1404" ];then sudo update-java-alternatives -s /usr/lib/jvm/java-1.8.0-openjdk-amd64;fi
260
261     maven:
262         maven-name: '{mvn33}'
263         root-pom: 'pom.xml'
264         goals: 'clean install -V -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r  -Dmerge -Dkaraf.keep.unpack=true -Dsonar'
265         maven-opts: '-Xmx2048m -XX:MaxPermSize=256m -Dmaven.compile.fork=true'
266         settings: 'honeycomb-settings'
267         settings-type: cfp
268         global-settings: 'global-settings'
269         global-settings-type: cfp
270
271     postbuilders:
272         - shell: |
273             if [ "${{OS}}" == "ubuntu1404" ];then sudo update-java-alternatives -s /usr/lib/jvm/java-1.7.0-openjdk-amd64;fi
274
275     reporters:
276         - findbugs
277
278     publishers:
279         - sonar:
280             language: 'java'
281         - email-notification:
282             email-prefix: '[honeycomb]'
283         - maven-deploy:
284             id: ''
285             unique-version: true
286             deploy-unstable: false