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