RELENG-131 Add CI task for joid-os-onos-sfc-ha.
[releng.git] / jjb / fuel / fuel-project-jobs.yml
1 ########################
2 # Job configuration for fuel
3 ########################
4 - project:
5     name: fuel-project-jobs
6
7     project: 'fuel'
8
9     installer: 'fuel'
10
11     stream:
12         - master:
13             branch: '{stream}'
14             gs-pathname: ''
15             disabled: false
16         - brahmaputra:
17             branch: 'stable/{stream}'
18             gs-pathname: '/{stream}'
19             disabled: false
20
21     jobs:
22         - 'fuel-build-daily-{stream}'
23         - 'fuel-verify-build-{stream}'
24         - 'fuel-merge-build-{stream}'
25         - 'fuel-merge-deploy-virtual-{stream}'
26         - 'fuel-deploy-generic-daily-{stream}'
27
28 ########################
29 # job templates
30 ########################
31 - job-template:
32     name: 'fuel-build-daily-{stream}'
33
34     concurrent: false
35
36     properties:
37         - throttle:
38             enabled: true
39             max-total: 1
40             max-per-node: 1
41             option: 'project'
42
43     parameters:
44         - project-parameter:
45             project: '{project}'
46         - 'opnfv-build-ubuntu-defaults'
47         - '{installer}-defaults'
48         - choice:
49             name: FORCE_BUILD
50             choices:
51               - 'false'
52               - 'true'
53             description: "Force build even if there is no changes in fuel repo. Default false"
54         - fuel-project-parameter:
55             gs-pathname: '{gs-pathname}'
56
57     scm:
58         - git-scm:
59             credentials-id: '{ssh-credentials}'
60             refspec: ''
61             branch: '{branch}'
62
63     triggers:
64         - timed: '0 H/4 * * *'
65
66     wrappers:
67         - timeout:
68             timeout: 360
69             fail: true
70
71     builders:
72         - shell:
73             !include-raw-escape: ./fuel-build.sh
74         - shell:
75             !include-raw-escape: ./fuel-upload-artifact.sh
76         - shell:
77             !include-raw-escape: ./fuel-workspace-cleanup.sh
78
79     publishers:
80         - email:
81             recipients: jonas.bjurel@ericsson.com stefan.k.berg@ericsson.com
82
83 - job-template:
84     name: 'fuel-verify-build-{stream}'
85
86     disabled: '{obj:disabled}'
87
88     concurrent: true
89
90     parameters:
91         - project-parameter:
92             project: '{project}'
93         - gerrit-parameter:
94             branch: '{branch}'
95         - 'opnfv-build-ubuntu-defaults'
96         - '{installer}-defaults'
97         - fuel-project-parameter:
98             gs-pathname: '{gs-pathname}'
99
100     scm:
101         - gerrit-trigger-scm:
102             credentials-id: '{ssh-credentials}'
103             refspec: '$GERRIT_REFSPEC'
104             choosing-strategy: 'gerrit'
105
106     wrappers:
107         - ssh-agent-credentials:
108             users:
109                 - '{ssh-credentials}'
110         - timeout:
111             timeout: 360
112             fail: true
113
114     triggers:
115         - gerrit:
116             trigger-on:
117                 - patchset-created-event:
118                     exclude-drafts: 'false'
119                     exclude-trivial-rebase: 'false'
120                     exclude-no-code-change: 'false'
121                 - draft-published-event
122                 - comment-added-contains-event:
123                     comment-contains-value: 'recheck'
124                 - comment-added-contains-event:
125                     comment-contains-value: 'reverify'
126             projects:
127               - project-compare-type: 'ANT'
128                 project-pattern: '{project}'
129                 branches:
130                   - branch-compare-type: 'ANT'
131                     branch-pattern: '**/{branch}'
132                 file-paths:
133                   - compare-type: ANT
134                     pattern: 'ci/**'
135                   - compare-type: ANT
136                     pattern: 'build/**'
137                   - compare-type: ANT
138                     pattern: 'deploy/**'
139                 forbidden-file-paths:
140                   - compare-type: ANT
141                     pattern: 'docs/**'
142             readable-message: true
143
144     builders:
145         - shell:
146             !include-raw-escape: ./fuel-build.sh
147         - shell:
148             !include-raw-escape: ./fuel-workspace-cleanup.sh
149
150 - job-template:
151     name: 'fuel-merge-build-{stream}'
152
153     disabled: '{obj:disabled}'
154
155     concurrent: true
156
157     parameters:
158         - project-parameter:
159             project: '{project}'
160         - gerrit-parameter:
161             branch: '{branch}'
162         - 'opnfv-build-ubuntu-defaults'
163         - '{installer}-defaults'
164         - fuel-project-parameter:
165             gs-pathname: '{gs-pathname}'
166
167     scm:
168         - gerrit-trigger-scm:
169             credentials-id: '{ssh-credentials}'
170             refspec: ''
171             choosing-strategy: 'default'
172
173     wrappers:
174         - ssh-agent-credentials:
175             users:
176                 - '{ssh-credentials}'
177         - timeout:
178             timeout: 360
179             fail: true
180
181     triggers:
182         - gerrit:
183             trigger-on:
184                 - change-merged-event
185                 - comment-added-contains-event:
186                     comment-contains-value: 'remerge'
187             projects:
188               - project-compare-type: 'ANT'
189                 project-pattern: '{project}'
190                 branches:
191                     - branch-compare-type: 'ANT'
192                       branch-pattern: '**/{branch}'
193                 file-paths:
194                   - compare-type: ANT
195                     pattern: 'ci/**'
196                   - compare-type: ANT
197                     pattern: 'build/**'
198                   - compare-type: ANT
199                     pattern: 'deploy/**'
200                 forbidden-file-paths:
201                   - compare-type: ANT
202                     pattern: 'docs/**'
203
204     builders:
205         - shell:
206             !include-raw-escape: ./fuel-build.sh
207         - shell:
208             !include-raw-escape: ./fuel-upload-artifact.sh
209         - shell:
210             !include-raw-escape: ./fuel-workspace-cleanup.sh
211
212 - job-template:
213     name: 'fuel-merge-deploy-virtual-{stream}'
214
215     disabled: true
216
217     concurrent: true
218
219     properties:
220         - throttle:
221             enabled: true
222             max-total: 2
223             max-per-node: 1
224             option: 'project'
225         - build-blocker:
226             use-build-blocker: true
227             blocking-jobs:
228                 - 'fuel-os-.*?-virtual-daily-.*'
229                 - 'fuel-merge-deploy-virtual-.*'
230             block-level: 'NODE'
231
232     parameters:
233         - project-parameter:
234             project: '{project}'
235         - gerrit-parameter:
236             branch: '{branch}'
237         - 'fuel-virtual-defaults':
238             installer: '{installer}'
239         - '{installer}-defaults'
240         - fuel-project-parameter:
241             gs-pathname: '{gs-pathname}'
242     scm:
243         - gerrit-trigger-scm:
244             credentials-id: '{ssh-credentials}'
245             refspec: ''
246             choosing-strategy: 'default'
247
248     wrappers:
249         - ssh-agent-credentials:
250             users:
251                 - '{ssh-credentials}'
252
253     triggers:
254         - gerrit:
255             trigger-on:
256                 - change-merged-event
257                 - comment-added-contains-event:
258                     comment-contains-value: 'remerge'
259             projects:
260               - project-compare-type: 'ANT'
261                 project-pattern: '{project}'
262                 branches:
263                     - branch-compare-type: 'ANT'
264                       branch-pattern: '**/{branch}'
265                 file-paths:
266                   - compare-type: ANT
267                     pattern: 'ci/**'
268                   - compare-type: ANT
269                     pattern: 'build/**'
270                   - compare-type: ANT
271                     pattern: 'deploy/**'
272                 forbidden-file-paths:
273                   - compare-type: ANT
274                     pattern: 'docs/**'
275             dependency-jobs: 'fuel-merge-build-{stream}'
276
277     builders:
278         - shell:
279             !include-raw-escape: ./fuel-download-artifact.sh
280         - shell:
281             !include-raw-escape: ./fuel-deploy.sh
282         - shell:
283             !include-raw-escape: ./fuel-workspace-cleanup.sh
284
285     publishers:
286         - email:
287             recipients: jonas.bjurel@ericsson.com stefan.k.berg@ericsson.com
288
289 - job-template:
290     name: 'fuel-deploy-generic-daily-{stream}'
291
292     concurrent: true
293
294     disabled: false
295
296     properties:
297         - throttle:
298             enabled: true
299             max-per-node: 1
300             option: 'project'
301         - build-blocker:
302             use-build-blocker: true
303             blocking-jobs:
304                 - 'fuel-os-.*?-daily-.*'
305                 - 'fuel-deploy-generic-daily-.*'
306             block-level: 'NODE'
307
308     parameters:
309         - project-parameter:
310             project: '{project}'
311         - '{installer}-defaults'
312         - string:
313             name: GIT_BASE
314             default: https://gerrit.opnfv.org/gerrit/$PROJECT
315             description: 'Git URL to use on this Jenkins Slave'
316         - string:
317             name: DEPLOY_SCENARIO
318             default: 'os-odl_l2-nofeature-ha'
319         - node:
320             name: SLAVE_NAME
321             description: 'Slave name on Jenkins'
322             allowed-slaves:
323                 - ericsson-pod2
324                 - lf-pod2
325                 - ericsson-pod1
326             default-slaves:
327                 - ericsson-pod2
328         - fuel-project-parameter:
329             gs-pathname: '{gs-pathname}'
330
331     scm:
332         - git-scm:
333             credentials-id: '{ssh-credentials}'
334             refspec: ''
335             branch: '{branch}'
336
337     wrappers:
338         - build-name:
339             name: '$BUILD_NUMBER - POD: $NODE_NAME Scenario: $DEPLOY_SCENARIO'
340
341     builders:
342         - shell:
343             !include-raw-escape: ./fuel-download-artifact.sh
344         - shell:
345             !include-raw-escape: ./fuel-deploy.sh
346
347 ########################
348 # parameter macros
349 ########################
350 - parameter:
351     name: fuel-project-parameter
352     parameters:
353         - string:
354             name: BUILD_DIRECTORY
355             default: $WORKSPACE/build_output
356             description: "Directory where the build artifact will be located upon the completion of the build."
357         - string:
358             name: CACHE_DIRECTORY
359             default: $HOME/opnfv/cache/$INSTALLER_TYPE
360             description: "Directory where the cache to be used during the build is located."
361         - string:
362             name: GS_URL
363             default: artifacts.opnfv.org/$PROJECT{gs-pathname}
364             description: "URL to Google Storage."