Add unified review verification maven template
[ci-management.git] / jjb / integration / integration-templates-csit.yaml
1 ---
2 - job-template:
3     name: '{project-name}-{stream}-verify-csit-{functionality}'
4     disabled: '{disabled}'
5
6     project-type: freestyle
7     build-node: 'ubuntu1804-docker-8c-8g'
8     node: '{build-node}'
9     recipients: ''
10     java-version: 'openjdk11'
11     python-version: python3
12
13     properties:
14       - lf-infra-properties:
15           project: 'integration/csit'
16           build-days-to-keep: '{build-days-to-keep}'
17
18     parameters:
19       - infra-parameters:
20           project: 'integration/csit'
21           branch: '{branch}'
22           refspec: 'refs/heads/{branch}'
23           artifacts: '{archive-artifacts}'
24       - integration-test-plan:
25           test-plan: 'plans/{project-name}/{functionality}'
26       - integration-test-options:
27           test-options: '{robot-options}'
28
29     scm:
30       - gerrit-trigger-scm:
31           refspec: '$GERRIT_REFSPEC'
32           choosing-strategy: 'gerrit'
33           submodule-recursive: '{submodule-recursive}'
34
35     wrappers:
36       - lf-infra-wrappers:
37           build-timeout: '{build-timeout}'
38           jenkins-ssh-credential: '{jenkins-ssh-credential}'
39
40     triggers:
41       - gerrit-trigger-patch-submitted:
42           server: '{server-name}'
43           project: 'integration/csit'
44           branch: '{branch}'
45           files: '**/{project-name}/**'
46
47     builders:
48       - lf-update-java-alternatives:
49           java-version: '{java-version}'
50       - integration-install-robotframework
51       - inject:
52           properties-file: 'env.properties'
53       - integration-run-test
54
55     publishers:
56       - integration-robot:
57           unstable-if: 0.0
58           pass-if: 100.0
59       - lf-infra-publish
60       - email:
61           recipients: '{recipients}'
62           notify-every-unstable-build: false
63           send-to-individuals: true
64
65 - job-template:
66     name: '{project-name}-{stream}-csit-{functionality}'
67     disabled: '{disabled}'
68
69     project-type: freestyle
70     build-node: 'ubuntu1804-docker-8c-8g'
71     node: '{build-node}'
72     recipients: ''
73     java-version: 'openjdk11'
74     python-version: python3
75
76     properties:
77       - lf-infra-properties:
78           project: 'integration/csit'
79           build-days-to-keep: '{build-days-to-keep}'
80
81     parameters:
82       - infra-parameters:
83           project: 'integration/csit'
84           branch: '{branch}'
85           refspec: 'refs/heads/{branch}'
86           artifacts: '{archive-artifacts}'
87       - integration-test-plan:
88           test-plan: 'plans/{project-name}/{functionality}'
89       - integration-test-options:
90           test-options: '{robot-options}'
91
92     scm:
93       - gerrit-trigger-scm:
94           refspec: ''
95           choosing-strategy: 'default'
96           submodule-recursive: '{submodule-recursive}'
97
98     wrappers:
99       - lf-infra-wrappers:
100           build-timeout: '{build-timeout}'
101           jenkins-ssh-credential: '{jenkins-ssh-credential}'
102
103     triggers:
104       - gerrit-trigger-patch-merged:
105           server: '{server-name}'
106           project: 'integration/csit'
107           branch: '{branch}'
108           files: '**/{project-name}/**'
109       - timed: '@daily'
110       - reverse:
111           jobs: '{obj:trigger_jobs}'
112
113     builders:
114       - lf-infra-pre-build
115       - lf-update-java-alternatives:
116           java-version: '{java-version}'
117       - integration-install-robotframework
118       - inject:
119           properties-file: 'env.properties'
120       - integration-run-test
121
122     publishers:
123       - integration-robot:
124           unstable-if: 0.0
125           pass-if: 100.0
126       - lf-infra-publish
127       - email:
128           recipients: '{recipients}'
129           notify-every-unstable-build: false
130           send-to-individuals: true
131
132 - job-template:
133     # Job template for project-specific CSIT jobs
134     #
135     # The purpose of this job template is to execute
136     # project-specific CSIT test cases for docker image versions 
137     # identified by unique docker tag input parameter
138     #
139
140     name: '{project-name}-{stream}-project-csit'
141     disabled: '{disabled}'
142     project-type: freestyle
143     build-node: 'ubuntu1804-docker-8c-8g'
144     node: '{build-node}'
145     recipients: ''
146     java-version: 'openjdk11'
147     python-version: python3
148
149     properties:
150       - lf-infra-properties:
151           project: '{project}'
152           build-days-to-keep: '{build-days-to-keep}'
153
154     parameters:
155       - infra-parameters:
156           project: '{project}'
157           branch: '{branch}'
158           refspec: 'refs/heads/{branch}'
159           artifacts: '{archive-artifacts}'
160       - integration-test-options:
161           test-options: '{robot-options}'
162       - integration-unique-docker-tag:
163           unique-docker-tag: ''
164
165     scm:
166       - gerrit-trigger-scm:
167           refspec: '$GERRIT_REFSPEC'
168           choosing-strategy: 'gerrit'
169           submodule-recursive: '{submodule-recursive}'
170
171     wrappers:
172       - lf-infra-wrappers:
173           build-timeout: '{build-timeout}'
174           jenkins-ssh-credential: '{jenkins-ssh-credential}'
175
176     builders:
177       - lf-infra-pre-build
178       - lf-update-java-alternatives:
179           java-version: '{java-version}'
180       - integration-install-robotframework
181       - inject:
182           properties-file: 'env.properties'
183       - integration-run-project-test
184
185     publishers:
186       - integration-project-robot:
187           unstable-if: 0.0
188           pass-if: 100.0
189       - lf-infra-publish
190       - email:
191           recipients: '{recipients}'
192           notify-every-unstable-build: false
193           send-to-individuals: true
194
195 - job-template:
196     # Job template for unified review verification jobs in
197     # project-specific CSIT flow for projects built with maven
198     #
199     # The purpose of this job template is to:
200     #  1. build local snapshot docker images with maven
201     #  2. run CSIT job with the local images
202     #  3. give a verify vote to the triggering review
203     #
204
205     name: '{project-name}-review-verification-maven-{stream}'
206
207     ######################
208     # Default parameters #
209     ######################
210
211     branch: master
212     build-days-to-keep: 30 # 30 days in case a release takes long to get approved.
213     build-timeout: 60
214     disable-job: false
215     git-url: "$GIT_URL/$PROJECT"
216     github-url: "https://github.com"
217     maven-versions-plugin: false
218     version-properties-file: version.properties
219     mvn-central: false
220     mvn-global-settings: global-settings
221     mvn-goals: clean deploy
222     mvn-opts: ""
223     mvn-params: ""
224     maven-version: mvn36
225     ossrh-profile-id: ""
226     mvn-pom: ""
227     stream: master
228     submodule-recursive: true
229     submodule-timeout: 10
230     submodule-disable: false
231
232     disabled: '{disabled}'
233     archive-artifacts: >
234       **/*.log
235       **/hs_err_*.log
236       **/target/**/feature.xml
237       **/target/failsafe-reports/failsafe-summary.xml
238       **/target/surefire-reports/*-output.txt
239
240     project-type: freestyle
241     node: '{build-node}'
242     java-version: 'openjdk11'
243
244     properties:
245       - lf-infra-properties:
246           project: '{project}'
247           build-days-to-keep: '{build-days-to-keep}'
248     parameters:
249       - infra-parameters:
250           project: '{project}'
251           branch: '{branch}'
252           refspec: 'refs/heads/{branch}'
253           artifacts: '{archive-artifacts}'
254       - lf-infra-maven-parameters:
255           mvn-opts: "{mvn-opts}"
256           mvn-params: "{mvn-params}"
257           mvn-version: "{mvn-version}"
258       - maven-exec:
259           maven-version: '{maven-version}'
260       - maven-params:
261           mvn-params: '{mvn-params}'
262       - string:
263           name: ARCHIVE_ARTIFACTS
264           default: "{archive-artifacts}"
265           description: Artifacts to archive to the logs server.
266       - integration-test-options:
267           test-options: '{robot-options}'
268
269     scm:
270       - gerrit-trigger-scm:
271           refspec: '$GERRIT_REFSPEC'
272           choosing-strategy: 'gerrit'
273           submodule-recursive: '{submodule-recursive}'
274
275     wrappers:
276       - lf-infra-wrappers:
277           build-timeout: '{build-timeout}'
278           jenkins-ssh-credential: '{jenkins-ssh-credential}'
279     builders:
280       - lf-infra-pre-build
281       - lf-jacoco-nojava-workaround
282       - lf-maven-install:
283           mvn-version: "{mvn-version}"
284       - lf-update-java-alternatives:
285           java-version: "{java-version}"
286       - lf-infra-docker-login:
287           global-settings-file: "{mvn-global-settings}"
288           settings-file: "{mvn-settings}"
289       # must provide maven settings AFTER docker-login due to its cleanup
290       - lf-provide-maven-settings:
291           global-settings-file: "{mvn-global-settings}"
292           settings-file: "{mvn-settings}"
293       - lf-maven-versions-plugin:
294           maven-versions-plugin: "{maven-versions-plugin}"
295           version-properties-file: "{version-properties-file}"
296           mvn-version: "{mvn-version}"
297           mvn-pom: "{mvn-pom}"
298           mvn-settings: "{mvn-settings}"
299       - inject:
300           properties-content: |
301             CONTAINER_PULL_REGISTRY={container-public-registry}
302             CONTAINER_PUSH_REGISTRY={container-snapshot-registry}
303       - lf-maven-build:
304           mvn-goals: "{mvn-goals}"
305       - integration-install-robotframework
306       - inject:
307           properties-file: 'env.properties'
308       - integration-run-project-test
309       - lf-provide-maven-settings-cleanup
310
311     triggers:
312       - gerrit-trigger-patch-submitted:
313           server: '{server-name}'
314           project: '{project}'
315           branch: '{branch}'
316           files: '**'
317     publishers:
318       - lf-infra-publish
319
320 - job-template:
321     # Job template for review verification jobs in 
322     # project-specific CSIT flow
323     #
324     # The purpose of this job template is to:
325     #  1. trigger snapshot docker build job
326     #  2. trigger CSIT job
327     #  3. give a verify vote to the triggering review
328     #
329
330     name: '{project-name}-review-verification-{stream}'
331     disabled: '{disabled}'
332     project-type: freestyle
333     build-node: 'ubuntu1804-docker-8c-8g'
334     java-version: 'openjdk11'
335
336     properties:
337       - lf-infra-properties:
338           project: '{project}'
339           build-days-to-keep: '{build-days-to-keep}'
340     parameters:
341       - infra-parameters:
342           project: '{project}'
343           branch: '{branch}'
344           refspec: 'refs/heads/{branch}'
345           artifacts: '{archive-artifacts}'
346     scm:
347       - gerrit-trigger-scm:
348           refspec: '$GERRIT_REFSPEC'
349           choosing-strategy: 'gerrit'
350           submodule-recursive: '{submodule-recursive}'
351     wrappers:
352       - lf-infra-wrappers:
353           build-timeout: '{build-timeout}'
354           jenkins-ssh-credential: '{jenkins-ssh-credential}'
355     builders:
356       - lf-infra-pre-build
357       - lf-maven-install:
358           mvn-version: "{mvn-version}"
359       - lf-update-java-alternatives:
360           java-version: "{java-version}"
361       - lf-provide-maven-settings:
362           global-settings-file: "{mvn-global-settings}"
363           settings-file: "{mvn-settings}"
364       - trigger-builds:
365          -  project: "{project-name}-{stream}-{artifact-type}-docker-snapshot"
366             predefined-parameters: |
367               UNIQUE_DOCKER_TAG=$BUILD_TAG
368               PROJECT=$PROJECT
369               BRANCH=$BRANCH
370               GERRIT_REFSPEC=$GERRIT_REFSPEC
371             block: true
372       - trigger-builds:
373          -  project: "{project-name}-{stream}-project-csit"
374             predefined-parameters: |
375               UNIQUE_DOCKER_TAG=$BUILD_TAG
376               PROJECT=$PROJECT
377               BRANCH=$BRANCH
378               GERRIT_REFSPEC=$GERRIT_REFSPEC
379             block: true
380     triggers:
381       - gerrit-trigger-patch-submitted:
382           server: '{server-name}'
383           project: '{project}'
384           branch: '{branch}'
385           files: '**'
386     publishers:
387       - lf-infra-publish
388
389 - job-template:
390     # Job template for merge verification jobs in 
391     # project-specific CSIT flow
392     #
393     # The purpose of this job template is to trigger
394     # the following jobs in sequence:
395     #  1. snapshot docker build job
396     #  2. CSIT job
397     #  3. docker staging job
398     #
399
400     name: '{project-name}-merge-verification-{stream}'
401     disabled: '{disabled}'
402     project-type: freestyle
403     build-node: 'ubuntu1804-docker-8c-8g'
404     java-version: 'openjdk11'
405
406     properties:
407       - lf-infra-properties:
408           project: '{project}'
409           build-days-to-keep: '{build-days-to-keep}'
410     parameters:
411       - infra-parameters:
412           project: '{project}'
413           branch: '{branch}'
414           refspec: 'refs/heads/{branch}'
415           artifacts: '{archive-artifacts}'
416     scm:
417       - gerrit-trigger-scm:
418           refspec: ''
419           choosing-strategy: 'default'
420           submodule-recursive: '{submodule-recursive}'
421     wrappers:
422       - lf-infra-wrappers:
423           build-timeout: '{build-timeout}'
424           jenkins-ssh-credential: '{jenkins-ssh-credential}'
425     builders:
426       - lf-infra-pre-build
427       - lf-maven-install:
428           mvn-version: "{mvn-version}"
429       - lf-update-java-alternatives:
430           java-version: "{java-version}"
431       - lf-provide-maven-settings:
432           global-settings-file: "{mvn-global-settings}"
433           settings-file: "{mvn-settings}"
434       - trigger-builds:
435          -  project: "{project-name}-{stream}-{artifact-type}-docker-snapshot"
436             predefined-parameters: |
437               UNIQUE_DOCKER_TAG=$BUILD_TAG
438               PROJECT=$PROJECT
439               BRANCH=$BRANCH
440               GERRIT_REFSPEC=$GERRIT_REFSPEC
441             block: true
442       - trigger-builds:
443          -  project: "{project-name}-{stream}-project-csit"
444             predefined-parameters: |
445               UNIQUE_DOCKER_TAG=$BUILD_TAG
446               PROJECT=$PROJECT
447               BRANCH=$BRANCH
448               GERRIT_REFSPEC=$GERRIT_REFSPEC
449             block: true
450       - trigger-builds:
451          -  project: "{project-name}-{stream}-docker-staging"
452             predefined-parameters: |
453               UNIQUE_DOCKER_TAG=$BUILD_TAG
454               PROJECT=$PROJECT
455               BRANCH=$BRANCH
456               GERRIT_REFSPEC=$GERRIT_REFSPEC
457             block: true
458     triggers:
459       - gerrit-trigger-patch-merged:
460           server: '{server-name}'
461           project: '{project}'
462           branch: '{branch}'
463           files: '**'
464     publishers:
465       - lf-infra-publish
466