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