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