Merge changes from topic '72816'
[releng/builder.git] / jjb / packaging / packaging.yaml
1 ---
2 - project:
3     name: packaging
4     project-name: packaging
5
6     jobs:
7       - '{project-name}-rtd-jobs':
8           build-node: centos7-builder-2c-2g
9           doc-dir: .tox/docs/tmp/html
10           project-pattern: integration/packaging
11           rtd-build-url: https://readthedocs.org/api/v2/webhook/odl-integrationpackaging/32928/
12           rtd-token: 371d63c43ad99b0745bb7779e3488c5e255c1180
13       - 'packaging-build-rpm-{stream}'
14       - 'packaging-build-rpm-{distro}-snap-{stream}'
15       - 'packaging-build-deb-{stream}'
16       - 'packaging-verify-full-rpm-master'
17       - 'packaging-verify-rpm-master'
18       - 'packaging-test-rpm-master'
19       - 'packaging-test-rpm-upgrade-master'
20       - 'packaging-test-deb-master'
21       - gerrit-tox-verify:
22           branch: master
23           stream: master
24
25     project: 'integration/packaging'
26
27     stream:
28       - fluorine
29       - oxygen
30     distro:
31       - opensuse-42
32       - epel-7
33     branch: 'master'
34
35     # common parameters required for 'lf-infra-deploy-maven-file' builder
36     group-id: 'org.opendaylight.integration-packaging'
37     upload-files-dir: '$WORKSPACE/upload_files'
38     maven-repo-url: '$NEXUS_URL/content/repositories/$REPO_ID'
39
40 - job-template:
41     name: 'packaging-build-rpm-{stream}'
42
43     node: centos7-builder-2c-8g
44
45     project-type: freestyle
46
47     mvn-opts: ''
48     mvn-params: ''
49     mvn-version: mvn33
50
51     properties:
52       - opendaylight-infra-properties:
53           build-days-to-keep: 7
54
55     parameters:
56       - opendaylight-infra-parameters:
57           os-cloud: '{os-cloud}'
58           project: '{project}'
59           branch: '{branch}'
60           refspec: 'refs/heads/{branch}'
61           artifacts: '{archive-artifacts}'
62       - lf-infra-maven-parameters:
63           mvn-opts: '{mvn-opts}'
64           mvn-params: '{mvn-params}'
65           mvn-version: '{mvn-version}'
66           staging-profile-id: ''
67       - string:
68           name: DOWNLOAD_URL
69           # yamllint disable-line rule:line-length
70           default: 'https://nexus.opendaylight.org/content/repositories/opendaylight.release/org/opendaylight/integration/karaf/0.8.2/karaf-0.8.2.tar.gz'
71           description: 'URL to ODL tarball artifact to repackage into RPM'
72       - string:
73           name: CHANGELOG_NAME
74           default: 'Jenkins'
75           description: 'Name of person who defined RPM'
76       - string:
77           name: CHANGELOG_EMAIL
78           default: 'jenkins-donotreply@opendaylight.org'
79           description: 'Email of person who defined RPM'
80       - string:
81           name: DEPLOY_TO_REPO
82           default: 'opendaylight-{stream}-epel-7-x86_64-devel'
83           description: 'Repository to deploy resulting package to'
84
85     scm:
86       - integration-gerrit-scm:
87           basedir: 'packaging'
88           refspec: '$GERRIT_REFSPEC'
89           branch: 'master'
90
91     wrappers:
92       - opendaylight-infra-wrappers:
93           build-timeout: '{build-timeout}'
94
95     builders:
96       - shell: !include-raw-escape: build-rpm.sh
97       - install-test-uninstall-rpm
98       - lf-infra-deploy-maven-file:
99           global-settings-file: 'global-settings'
100           settings-file: 'packaging-settings'
101           mvn-version: '{mvn-version}'
102           repo-id: '$DEPLOY_TO_REPO'
103           group-id: '{group-id}'
104           upload-files-dir: '{upload-files-dir}'
105           maven-repo-url: '{maven-repo-url}'
106
107     publishers:
108       - lf-infra-publish
109
110
111 - job-template:
112     name: 'packaging-build-rpm-{distro}-snap-{stream}'
113
114     node: centos7-docker-2c-8g
115
116     project-type: freestyle
117
118     mvn-opts: ''
119     mvn-params: ''
120     mvn-version: mvn33
121
122     properties:
123       - opendaylight-infra-properties:
124           build-days-to-keep: 7
125
126     parameters:
127       - opendaylight-infra-parameters:
128           os-cloud: '{os-cloud}'
129           project: '{project}'
130           branch: '{branch}'
131           refspec: 'refs/heads/{branch}'
132           artifacts: '{archive-artifacts}'
133       - lf-infra-maven-parameters:
134           mvn-opts: '{mvn-opts}'
135           mvn-params: '{mvn-params}'
136           mvn-version: '{mvn-version}'
137           staging-profile-id: ''
138       - string:
139           name: CHANGELOG_NAME
140           default: 'Jenkins'
141           description: 'Name of person who defined RPM'
142       - string:
143           name: CHANGELOG_EMAIL
144           default: 'jenkins-donotreply@opendaylight.org'
145           description: 'Email of person who defined RPM'
146
147     scm:
148       - integration-gerrit-scm:
149           basedir: 'packaging'
150           refspec: '$GERRIT_REFSPEC'
151           branch: 'master'
152
153     wrappers:
154       - opendaylight-infra-wrappers:
155           build-timeout: '{build-timeout}'
156
157     builders:
158       - inject:
159           properties-content: |
160               STREAM={stream}
161               DISTRO={distro}
162       - shell: !include-raw: build-rpm-snap-docker.sh
163       - shell: !include-raw: test-rpm-docker.sh
164       - lf-infra-deploy-maven-file:
165           global-settings-file: 'global-settings'
166           settings-file: 'packaging-settings'
167           mvn-version: '{mvn-version}'
168           repo-id: 'opendaylight-{stream}-{distro}-x86_64-devel'
169           group-id: '{group-id}'
170           upload-files-dir: '{upload-files-dir}'
171           maven-repo-url: '{maven-repo-url}'
172
173     triggers:
174       - timed: '@daily'
175
176     publishers:
177       - lf-infra-publish
178
179
180 - job-template:
181     name: 'packaging-verify-rpm-master'
182
183     node: centos7-builder-2c-8g
184
185     project-type: freestyle
186
187     parameters:
188       - opendaylight-infra-parameters:
189           os-cloud: '{os-cloud}'
190           project: '{project}'
191           branch: '{branch}'
192           refspec: 'refs/heads/{branch}'
193           artifacts: '{archive-artifacts}'
194
195     scm:
196       - integration-gerrit-scm:
197           basedir: 'packaging'
198           refspec: '$GERRIT_REFSPEC'
199           branch: 'master'
200
201     wrappers:
202       - opendaylight-infra-wrappers:
203           build-timeout: '{build-timeout}'
204
205     builders:
206       # Test Oxygen SR2 release tarball
207       - inject:
208           # yamllint disable-line rule:line-length
209           properties-content: 'DOWNLOAD_URL=https://nexus.opendaylight.org/content/repositories/opendaylight.release/org/opendaylight/integration/karaf/0.8.2/karaf-0.8.2.tar.gz'
210       - shell: !include-raw-escape: build-rpm.sh
211       - install-test-uninstall-rpm
212
213       # Test latest Oxygen snapshot
214       - inject:
215           properties-content: 'STREAM=oxygen'
216       - shell: !include-raw: build-rpm-snap.sh
217       - install-test-uninstall-rpm
218
219       # Test Fluorine pre-release autorelease tarball
220       # NB: This will need to be updated as old builds expire
221       - inject:
222           # yamllint disable-line rule:line-length
223           properties-content: 'DOWNLOAD_URL=https://nexus.opendaylight.org/content/repositories/autorelease-2209/org/opendaylight/integration/karaf/0.9.0/karaf-0.9.0.tar.gz'
224       - shell: !include-raw-escape: build-rpm.sh
225       - install-test-uninstall-rpm
226
227       # Test Fluorine multipatch zip (no parallel tarball available)
228       # NB: This will need to be updated as old builds expire
229       - inject:
230           # yamllint disable-line rule:line-length
231           properties-content: 'DOWNLOAD_URL=https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/org/opendaylight/integration/integration/distribution/karaf/0.9.0-SNAPSHOT/karaf-0.9.0-20180626.171605-65.zip'
232       - shell: !include-raw-escape: build-rpm.sh
233       - install-test-uninstall-rpm
234
235       # Test latest Fluorine snapshot
236       - inject:
237           properties-content: 'STREAM=fluorine'
238       - shell: !include-raw: build-rpm-snap.sh
239       - install-test-uninstall-rpm
240
241     triggers:
242       - gerrit-trigger-patch-submitted:
243           gerrit-server-name: '{gerrit-server-name}'
244           project: '{project}'
245           branch: '{branch}'
246           files: 'packages/**'
247
248     publishers:
249       - lf-infra-publish
250
251
252 - job-template:
253     name: 'packaging-verify-full-rpm-master'
254
255     node: centos7-builder-2c-8g
256
257     project-type: freestyle
258
259     parameters:
260       - opendaylight-infra-parameters:
261           os-cloud: '{os-cloud}'
262           project: '{project}'
263           branch: '{branch}'
264           refspec: 'refs/heads/{branch}'
265           artifacts: '{archive-artifacts}'
266
267     scm:
268       - integration-gerrit-scm:
269           basedir: 'packaging'
270           refspec: '$GERRIT_REFSPEC'
271           branch: 'master'
272
273     wrappers:
274       - opendaylight-infra-wrappers:
275           build-timeout: '{build-timeout}'
276
277     builders:
278       # Test Oxygen SR2 release tarball
279       - inject:
280           # yamllint disable-line rule:line-length
281           properties-content: 'DOWNLOAD_URL=https://nexus.opendaylight.org/content/repositories/opendaylight.release/org/opendaylight/integration/karaf/0.8.2/karaf-0.8.2.tar.gz'
282       - shell: !include-raw-escape: build-rpm.sh
283       - install-test-uninstall-rpm
284
285       # Test Oxygen pre-release autorelease tarball
286       # NB: This will need to be updated as old builds expire
287       - inject:
288           # yamllint disable-line rule:line-length
289           properties-content: 'DOWNLOAD_URL=https://nexus.opendaylight.org/content/repositories/autorelease-2210/org/opendaylight/integration/karaf/0.8.3/karaf-0.8.3.tar.gz'
290       - shell: !include-raw-escape: build-rpm.sh
291       - install-test-uninstall-rpm
292
293       # Test Oxygen multipatch zip (no parallel tarball available)
294       # NB: This will need to be updated as old builds expire
295       - inject:
296           # yamllint disable-line rule:line-length
297           properties-content: 'DOWNLOAD_URL=https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/org/opendaylight/integration/integration/distribution/karaf/0.8.3-SNAPSHOT/karaf-0.8.3-20180627.184938-10.zip'
298       - shell: !include-raw-escape: build-rpm.sh
299       - install-test-uninstall-rpm
300
301       # Test latest Oxygen snapshot
302       - inject:
303           properties-content: 'STREAM=oxygen'
304       - shell: !include-raw: build-rpm-snap.sh
305       - install-test-uninstall-rpm
306
307       # Test Fluorine pre-release autorelease tarball
308       # NB: This will need to be updated as old builds expire
309       - inject:
310           # yamllint disable-line rule:line-length
311           properties-content: 'DOWNLOAD_URL=https://nexus.opendaylight.org/content/repositories/autorelease-2209/org/opendaylight/integration/karaf/0.9.0/karaf-0.9.0.tar.gz'
312       - shell: !include-raw-escape: build-rpm.sh
313       - install-test-uninstall-rpm
314
315       # Test Fluorine multipatch zip (no parallel tarball available)
316       # NB: This will need to be updated as old builds expire
317       - inject:
318           # yamllint disable-line rule:line-length
319           properties-content: 'DOWNLOAD_URL=https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/org/opendaylight/integration/integration/distribution/karaf/0.9.0-SNAPSHOT/karaf-0.9.0-20180626.171605-65.zip'
320       - shell: !include-raw-escape: build-rpm.sh
321       - install-test-uninstall-rpm
322
323       # Test latest Fluorine snapshot
324       - inject:
325           properties-content: 'STREAM=fluorine'
326       - shell: !include-raw: build-rpm-snap.sh
327       - install-test-uninstall-rpm
328
329     triggers:
330       - timed: '@daily'
331       - gerrit:
332           server-name: '{gerrit-server-name}'
333           trigger-on:
334             - comment-added-contains-event:
335                 comment-contains-value: 'verify-rpm-full'
336           projects:
337             - project-compare-type: ANT
338               project-pattern: '{project}'
339               branches:
340                 - branch-compare-type: ANT
341                   branch-pattern: '**/{branch}'
342
343     publishers:
344       - lf-infra-publish
345
346
347 - job-template:
348     name: 'packaging-test-rpm-master'
349
350     node: centos7-builder-2c-8g
351
352     parameters:
353       - opendaylight-infra-parameters:
354           os-cloud: '{os-cloud}'
355           project: '{project}'
356           branch: '{branch}'
357           refspec: 'refs/heads/{branch}'
358           artifacts: '{archive-artifacts}'
359       - string:
360           name: URL
361           # yamllint disable-line rule:line-length
362           default: 'https://git.opendaylight.org/gerrit/gitweb?p=integration/packaging.git;a=blob_plain;f=packages/rpm/example_repo_configs/opendaylight-9-devel.repo'
363           description: 'Link to .repo or .rpm file'
364
365     scm:
366       - integration-gerrit-scm:
367           basedir: 'packaging'
368           refspec: '$GERRIT_REFSPEC'
369           branch: 'master'
370
371     wrappers:
372       - opendaylight-infra-wrappers:
373           build-timeout: '{build-timeout}'
374
375     builders:
376       - shell: |
377           # Install expect to interact with Karaf shell
378           # Install nmap to check status of ODL's SSH port
379           sudo yum install -y expect nmap
380       - shell: !include-raw-escape: install-rpm.sh
381       - shell: !include-raw: start-odl.sh
382       - shell: !include-raw-escape: test-ports-nofeature.sh
383       - shell: !include-raw: test-karaf-oxygensafe.expect
384       # Disable this test until ODLPARENT-139 is fixed
385       # - shell: !include-raw-escape: test-rest-ok.sh
386       - shell: !include-raw: stop-odl.sh
387       - shell: !include-raw: uninstall-rpm.sh
388
389     publishers:
390       # TODO: Remove the archive publisher
391       #       small data should be stored on logs.opendaylight.org
392       #       large data should be stored on nexus.opendaylight.org
393       - archive:
394           artifacts: '**'
395           allow-empty: true
396           fingerprint: true
397           latest-only: true
398       - lf-infra-publish
399
400
401 - job-template:
402     name: 'packaging-test-rpm-upgrade-master'
403
404     node: centos7-builder-2c-8g
405
406     parameters:
407       - opendaylight-infra-parameters:
408           os-cloud: '{os-cloud}'
409           project: '{project}'
410           branch: '{branch}'
411           refspec: 'refs/heads/{branch}'
412           artifacts: '{archive-artifacts}'
413       - string:
414           name: URL
415           # yamllint disable-line rule:line-length
416           default: 'https://raw.githubusercontent.com/opendaylight/integration-packaging/master/packages/rpm/example_repo_configs/opendaylight-8-release.repo'
417           description: 'Link to .repo or .rpm file'
418       - string:
419           name: UPGRADE_URL
420           # yamllint disable-line rule:line-length
421           default: 'https://raw.githubusercontent.com/opendaylight/integration-packaging/master/packages/rpm/example_repo_configs/opendaylight-8-devel.repo'
422           description: 'Link to .repo or .rpm file'
423
424     scm:
425       - integration-gerrit-scm:
426           basedir: 'packaging'
427           refspec: '$GERRIT_REFSPEC'
428           branch: 'master'
429
430     wrappers:
431       - opendaylight-infra-wrappers:
432           build-timeout: '{build-timeout}'
433
434     builders:
435       - shell: !include-raw-escape: install-rpm.sh
436       - shell: !include-raw: start-odl.sh
437       - shell: |
438           # Install expect to interact with Karaf shell
439           sudo yum install -y expect
440           # Install nmap to check status of ODL's SSH port
441           sudo yum install -y nmap
442       - shell: !include-raw: test-karaf-oxygensafe.expect
443       - shell: !include-raw: stop-odl.sh
444       - shell: !include-raw: test-rpm-upgrade.sh
445       - shell: !include-raw: start-odl.sh
446       - shell: !include-raw: test-karaf-oxygensafe.expect
447       - shell: !include-raw: stop-odl.sh
448       - shell: !include-raw: uninstall-rpm.sh
449
450     publishers:
451       - lf-infra-publish
452
453
454 - job-template:
455     name: 'packaging-test-deb-master'
456
457     node: ubuntu1604-mininet-ovs-25-1c-4g
458
459     parameters:
460       - opendaylight-infra-parameters:
461           os-cloud: '{os-cloud}'
462           project: '{project}'
463           branch: '{branch}'
464           refspec: 'refs/heads/{branch}'
465           artifacts: '{archive-artifacts}'
466       - string:
467           name: PACKAGE
468           default: 'ppa:odl-team/oxygen'
469           description: 'Link to .deb package or name of PPA repo'
470
471     scm:
472       - integration-gerrit-scm:
473           basedir: 'packaging'
474           refspec: '$GERRIT_REFSPEC'
475           branch: 'master'
476
477     wrappers:
478       - opendaylight-infra-wrappers:
479           build-timeout: '{build-timeout}'
480
481     builders:
482       - shell: !include-raw-escape: install-deb.sh
483       - shell: !include-raw: start-odl.sh
484       - shell: !include-raw-escape: test-ports-nofeature.sh
485       - shell: |
486           # Install expect to interact with Karaf shell
487           # Install nmap to check status of ODL's SSH port
488           sudo apt-get install -y expect nmap
489       - shell: !include-raw: test-karaf-oxygensafe.expect
490       # Disable this test until ODLPARENT-139 is fixed
491       # - shell: !include-raw-escape: test-rest-ok.sh
492       - shell: !include-raw: stop-odl.sh
493       - shell: !include-raw-escape: uninstall-deb.sh
494
495     publishers:
496       - lf-infra-publish
497
498
499 - job-template:
500     name: 'packaging-build-deb-{stream}'
501
502     node: ubuntu1604-mininet-ovs-25-1c-4g
503
504     project-type: freestyle
505
506     mvn-opts: ''
507     mvn-params: ''
508     mvn-version: mvn33
509
510     properties:
511       - opendaylight-infra-properties:
512           build-days-to-keep: 7
513
514     parameters:
515       - opendaylight-infra-parameters:
516           os-cloud: '{os-cloud}'
517           project: '{project}'
518           branch: '{branch}'
519           refspec: 'refs/heads/{branch}'
520           artifacts: '{archive-artifacts}'
521       - lf-infra-maven-parameters:
522           mvn-opts: '{mvn-opts}'
523           mvn-params: '{mvn-params}'
524           mvn-version: '{mvn-version}'
525           staging-profile-id: ''
526       - string:
527           name: DOWNLOAD_URL
528           # FIXME: Update the default value to an active stream.
529           # yamllint disable-line rule:line-length
530           default: 'https://nexus.opendaylight.org/content/repositories/opendaylight.release/org/opendaylight/integration/distribution-karaf/0.5.3-Boron-SR3/distribution-karaf-0.5.3-Boron-SR3.tar.gz'
531           description: 'URL to ODL tarball artifact to repackage into .deb'
532       - string:
533           name: CHANGELOG_NAME
534           default: 'Jenkins'
535           description: 'Name of person who defined .deb'
536       - string:
537           name: CHANGELOG_EMAIL
538           default: 'jenkins-donotreply@opendaylight.org'
539           description: 'Email of person who defined .deb'
540
541     scm:
542       - integration-gerrit-scm:
543           basedir: 'packaging'
544           refspec: '$GERRIT_REFSPEC'
545           branch: 'master'
546
547     wrappers:
548       - opendaylight-infra-wrappers:
549           build-timeout: '{build-timeout}'
550
551     builders:
552       - shell: !include-raw: build-deb.sh
553       - install-test-uninstall-deb
554       - lf-infra-deploy-maven-file:
555           global-settings-file: 'global-settings'
556           settings-file: 'packaging-settings'
557           mvn-version: '{mvn-version}'
558           repo-id: 'opendaylight-{stream}-ubuntu-1604-x86_64-devel'
559           group-id: '{group-id}'
560           upload-files-dir: '{upload-files-dir}'
561           maven-repo-url: '{maven-repo-url}'
562
563     publishers:
564       - lf-infra-publish
565
566 - view:
567     name: packaging
568     description: 'List of packaging, ansible and puppet jobs'
569     regex: '^packaging.*|ansible.*|puppet.*'
570     <<: *releng_view_common