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