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