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