Merge "Update cloud image Ubuntu18.04 mininet ovs"
[releng/builder.git] / jjb / packaging / helm.yaml
1 ---
2 ############
3 # BUILDERS #
4 ############
5
6 - builder:
7     name: packaging-create-netrc
8     builders:
9       - inject:
10           properties-content: "SERVER_ID={server-id}"
11       - shell: !include-raw-escape: helm-create-netrc.sh
12
13 ############
14 # TRIGGERS #
15 ############
16 - trigger:
17     name: gerrit-trigger-helm-verify
18     triggers:
19       - gerrit:
20           server-name: "{server}"
21           trigger-on:
22             - patchset-created-event:
23                 exclude-drafts: "false"
24                 exclude-trivial-rebase: "false"
25                 exclude-no-code-change: "false"
26             - draft-published-event
27             - comment-added-contains-event:
28                 comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify|verify-helm)\s*$'
29           projects:
30             - project-compare-type: "ANT"
31               project-pattern: "{project}"
32               branches:
33                 - branch-compare-type: "ANT"
34                   branch-pattern: "**/{branch}"
35               file-paths:
36                 - compare-type: "ANT"
37                   pattern: "{files}"
38
39 - trigger:
40     name: gerrit-trigger-helm-merge
41     triggers:
42       - gerrit:
43           server-name: "{server}"
44           trigger-on:
45             - change-merged-event
46             - comment-added-contains-event:
47                 comment-contains-value: "^remerge-helm$"
48           projects:
49             - project-compare-type: "ANT"
50               project-pattern: "{project}"
51               branches:
52                 - branch-compare-type: "ANT"
53                   branch-pattern: "**/{branch}"
54               file-paths:
55                 - compare-type: "ANT"
56                   pattern: "{files}"
57
58 - trigger:
59     name: gerrit-trigger-release-manually
60     triggers:
61       - gerrit:
62           server-name: "{server}"
63           trigger-on:
64             - comment-added-contains-event:
65                 comment-contains-value: '^Patch Set\s+\d+:\s+release-helm\s*$'
66           projects:
67             - project-compare-type: "ANT"
68               project-pattern: "{project}"
69               branches:
70                 - branch-compare-type: "ANT"
71                   branch-pattern: "**/{branch}"
72               file-paths:
73                 - compare-type: "ANT"
74                   pattern: "**"
75
76 ###########
77 # ANCHORS #
78 ###########
79 - helm_job_boiler_plate: &helm_job_boiler_plate
80     name: helm_job_boiler_plate
81
82     ######################
83     # Default parameters #
84     ######################
85
86     branch: master
87     submodule-recursive: true
88
89     # default params for helm jobs
90     build_script: ""
91     git-url: "$GIT_URL/$PROJECT"
92     post_build_script: ""
93     pre_build_script: ""
94     submodule-disable: false
95     submodule-timeout: 10
96     build-timeout: 240
97
98     #####################
99     # Job Configuration #
100     #####################
101
102     project-type: freestyle
103     node: "{build-node}"
104
105     properties:
106       - lf-infra-properties:
107           build-days-to-keep: "{build-days-to-keep}"
108
109     parameters:
110       - lf-infra-parameters:
111           branch: "{branch}"
112           project: "{project}"
113           stream: "{stream}"
114           lftools-version: "{lftools-version}"
115
116     wrappers:
117       - lf-infra-wrappers:
118           build-timeout: "{build-timeout}"
119           jenkins-ssh-credential: "{jenkins-ssh-credential}"
120
121     publishers:
122       - lf-infra-publish
123
124 #################
125 # JOB TEMPLATES #
126 #################
127 - job-template:
128     name: "{project-name}-{stream}-verify-{helm_bin}"
129     # Job template for helm verify jobs
130
131     <<: *helm_job_boiler_plate
132     concurrent: true
133
134     scm:
135       - gerrit-trigger-scm:
136           refspec: "$GERRIT_REFSPEC"
137           choosing-strategy: "gerrit"
138           submodule-recursive: "{submodule-recursive}"
139
140     triggers:
141       - gerrit-trigger-helm-verify:
142           status-context: "{project}-Helm-Verify"
143           server: "{gerrit-server-name}"
144           project: "{project}"
145           branch: "{branch}"
146           helm_bin: "{helm_bin}"
147           files: "{files}"
148
149     builders:
150       - lf-infra-pre-build
151       - shell: |
152           echo "export HELM_BIN={helm_bin}" > helm.prop
153       - shell: "{obj:pre_build_script}"
154       - shell: "{obj:build_script}"
155
156 - job-template:
157     name: "{project-name}-{stream}-merge-helm"
158     # Job template for Helm merge jobs
159     <<: *helm_job_boiler_plate
160
161     scm:
162       - gerrit-trigger-scm:
163           refspec: ""
164           choosing-strategy: "default"
165           submodule-recursive: "{submodule-recursive}"
166
167     triggers:
168       - gerrit-trigger-helm-merge:
169           server: "{gerrit-server-name}"
170           project: "{project}"
171           branch: "{branch}"
172           files: "{files}"
173
174     builders:
175       - lf-infra-pre-build
176       - lf-provide-maven-settings:
177           global-settings-file: "{mvn-global-settings}"
178           settings-file: "{mvn-settings}"
179       - shell: |
180           echo "export HELM_BIN=helm3.7" > helm.prop
181       - shell: "{obj:pre_build_script}"
182       - shell: "{obj:build_script}"
183       - packaging-create-netrc:
184           server-id: packaging-helm
185       - inject:
186           properties-content: |
187             BUILD_TYPE=snapshot
188       - shell: "{obj:post_build_script}"
189       - lf-provide-maven-settings-cleanup
190
191 - job-template:
192     name: "{project-name}-{stream}-release-helm"
193     # Job template for Helm stage jobs
194     <<: *helm_job_boiler_plate
195     scm:
196       - gerrit-trigger-scm:
197           refspec: ""
198           choosing-strategy: "default"
199           submodule-recursive: "{submodule-recursive}"
200
201     triggers:
202       - gerrit:
203           trigger-on:
204             - comment-added-contains-event:
205                 comment-contains-value: '^Patch Set\s+\d+:\s+release-helm\s*$'
206
207     builders:
208       - lf-infra-pre-build
209       - lf-provide-maven-settings:
210           global-settings-file: "{mvn-global-settings}"
211           settings-file: "{mvn-settings}"
212       - shell: |
213           echo "export HELM_BIN=helm3.5" > helm.prop
214       - shell: "{obj:pre_build_script}"
215       - shell: "{obj:build_script}"
216       - lf-infra-create-netrc:
217           server-id: packaing-helm
218       - inject:
219           properties-content: |
220             BUILD_TYPE=release
221       - shell: "{obj:post_build_script}"
222       - lf-provide-maven-settings-cleanup
223
224 - job-template:
225     name: "{project-name}-{subproject}-{stream}-verify-helm"
226     # Job template for helm verify jobs
227     <<: *helm_job_boiler_plate
228
229     disabled: true
230     builders:
231       - lf-infra-pre-build
232       - shell: |
233           echo "export HELM_BIN=helm3.7" > helm.prop
234       - shell: "{pre_build_script}"
235       - shell: "{build_script}"
236       - shell: "{post_build_script}"
237
238 - job-template:
239     name: "{project-name}-{subproject}-{stream}-merge-helm"
240     # Job template for helm merge jobs
241     <<: *helm_job_boiler_plate
242
243     disabled: true
244     builders:
245       - lf-infra-pre-build
246       - shell: |
247           echo "export HELM_BIN=helm3.5" > helm.prop
248       - shell: "{pre_build_script}"
249       - shell: "{build_script}"
250       - inject:
251           properties-content: |
252             BUILD_TYPE=snapshot
253       - shell: "{post_build_script}"
254
255 - job-template:
256     name: "{project-name}-{stream}-update-helm-weekly"
257     <<: *helm_job_boiler_plate
258
259     disabled: true
260     scm:
261       - lf-infra-gerrit-scm:
262           jenkins-ssh-credential: "{jenkins-ssh-credential}"
263           git-url: "$GIT_URL/$PROJECT"
264           refspec: "$GERRIT_REFSPEC"
265           branch: "$GERRIT_BRANCH"
266           submodule-recursive: true
267           submodule-timeout: "{submodule-timeout}"
268           submodule-disable: "{submodule-disable}"
269           choosing-strategy: default
270
271     builders:
272       - lf-infra-pre-build
273       - shell: |
274           echo "export HELM_BIN=helm3.5" > helm.prop
275       - shell: "{pre_build_script}"
276       - shell: "{build_script}"
277       - shell: "{post_build_script}"
278
279     triggers:
280       # 11 AM UTC
281       - timed: "@daily"
282       - gerrit-trigger-release-manually:
283           server: "{gerrit-server-name}"
284           project: "{project}"
285           branch: "{branch}"
286
287 - project:
288     name: packaging
289     project-name: packaging
290     project: integration/packaging
291     mvn-settings: packaging-settings
292     mvn-global-settings: global-settings
293     archive-artifacts: ""
294     build-node: ubuntu1804-helm-2c-1g
295     pre_build_script: !include-raw-escape: helm-repo-init.sh
296     helm_build_script: |
297       #!/bin/bash
298       set -x
299       . helm.prop
300       set -e -o pipefail
301       cd helm/opendaylight
302       helm3.7 version
303       helm3.7 lint --strict .
304       helm3.7 package .
305
306     stream:
307       - chlorine:
308           branch: "master"
309       - sulfur:
310           branch: "stable/sulfur"
311
312     helm_bin:
313       - helm3.7
314       - helm3.5
315
316     exclude: []
317     subproject: []
318
319     jobs:
320       - "{project-name}-{stream}-verify-{helm_bin}":
321           build_script: "{helm_build_script}"
322           files: 'helm\/opendaylight\/.*\.yaml'
323           build-timeout: 600
324       - "{project-name}-{stream}-merge-helm":
325           build_script: "{helm_build_script}"
326           post_build_script: !include-raw-escape: publish-helm-charts.sh
327           files: 'helm\/opendaylight\/.*\.yaml'
328           build-timeout: 600
329       - "{project-name}-{stream}-release-helm":
330           build_script: "{helm_build_script}"
331           post_build_script: !include-raw-escape: publish-helm-charts.sh
332           files: 'helm\/opendaylight\/.*\.yaml'
333           build-timeout: 600
334       - "{project-name}-{stream}-update-helm-weekly":
335           build_script: "{helm_build_script}"
336           files: 'helm\/opendaylight\/.*\.yaml'