Merge "Add POD visualisation"
[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         - pollscm:
64             cron: '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         - 'ericsson-build-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: '{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: '{ssh-credentials}'
175         - timeout:
176             timeout: 360
177             fail: true
178
179     triggers:
180         - gerrit:
181             trigger-on:
182                 - change-merged-event
183                 - comment-added-contains-event:
184                     comment-contains-value: 'remerge'
185             projects:
186               - project-compare-type: 'ANT'
187                 project-pattern: '{project}'
188                 branches:
189                     - branch-compare-type: 'ANT'
190                       branch-pattern: '**/{branch}'
191                 file-paths:
192                   - compare-type: ANT
193                     pattern: 'ci/**'
194                   - compare-type: ANT
195                     pattern: 'build/**'
196                   - compare-type: ANT
197                     pattern: 'deploy/**'
198                 forbidden-file-paths:
199                   - compare-type: ANT
200                     pattern: 'docs/**'
201
202     builders:
203         - shell:
204             !include-raw-escape: ./fuel-build.sh
205         - shell:
206             !include-raw-escape: ./fuel-upload-artifact.sh
207         - shell:
208             !include-raw-escape: ./fuel-workspace-cleanup.sh
209
210 - job-template:
211     name: 'fuel-merge-deploy-virtual-{stream}'
212
213     disabled: true
214
215     concurrent: true
216
217     properties:
218         - throttle:
219             enabled: true
220             max-total: 2
221             max-per-node: 1
222         - build-blocker:
223             use-build-blocker: true
224             blocking-jobs:
225                 - 'fuel-os-.*?-virtual-daily-.*'
226                 - 'fuel-merge-deploy-virtual-.*'
227             block-level: 'NODE'
228
229     parameters:
230         - project-parameter:
231             project: '{project}'
232         - gerrit-parameter:
233             branch: '{branch}'
234         - 'virtual-defaults':
235             installer: '{installer}'
236         - '{installer}-defaults'
237         - fuel-project-parameter:
238             gs-pathname: '{gs-pathname}'
239     scm:
240         - gerrit-trigger-scm:
241             credentials-id: '{ssh-credentials}'
242             refspec: ''
243             choosing-strategy: 'default'
244
245     wrappers:
246         - ssh-agent-credentials:
247             users: '{ssh-credentials}'
248
249     triggers:
250         - gerrit:
251             trigger-on:
252                 - change-merged-event
253                 - comment-added-contains-event:
254                     comment-contains-value: 'remerge'
255             projects:
256               - project-compare-type: 'ANT'
257                 project-pattern: '{project}'
258                 branches:
259                     - branch-compare-type: 'ANT'
260                       branch-pattern: '**/{branch}'
261                 file-paths:
262                   - compare-type: ANT
263                     pattern: 'ci/**'
264                   - compare-type: ANT
265                     pattern: 'build/**'
266                   - compare-type: ANT
267                     pattern: 'deploy/**'
268                 forbidden-file-paths:
269                   - compare-type: ANT
270                     pattern: 'docs/**'
271             dependency-jobs: 'fuel-merge-build-{stream}'
272
273     builders:
274         - shell:
275             !include-raw-escape: ./fuel-download-artifact.sh
276         - shell:
277             !include-raw-escape: ./fuel-deploy.sh
278         - shell:
279             !include-raw-escape: ./fuel-workspace-cleanup.sh
280
281     publishers:
282         - email:
283             recipients: jonas.bjurel@ericsson.com stefan.k.berg@ericsson.com
284
285 - job-template:
286     name: 'fuel-deploy-generic-daily-{stream}'
287
288     concurrent: true
289
290     disabled: false
291
292     properties:
293         - throttle:
294             enabled: true
295             max-per-node: 1
296         - build-blocker:
297             use-build-blocker: true
298             blocking-jobs:
299                 - 'fuel-os-.*?-daily-.*'
300                 - 'fuel-deploy-generic-daily-.*'
301             block-level: 'NODE'
302
303     parameters:
304         - project-parameter:
305             project: '{project}'
306         - '{installer}-defaults'
307         - string:
308             name: GIT_BASE
309             default: https://gerrit.opnfv.org/gerrit/$PROJECT
310             description: 'Git URL to use on this Jenkins Slave'
311         - string:
312             name: DEPLOY_SCENARIO
313             default: 'os-odl_l2-nofeature-ha'
314         - node:
315             name: SLAVE_NAME
316             description: 'Slave name on Jenkins'
317             allowed-slaves:
318                 - ericsson-pod2
319                 - opnfv-jump-2
320                 - ericsson-pod1
321             default-slaves:
322                 - ericsson-pod2
323         - fuel-project-parameter:
324             gs-pathname: '{gs-pathname}'
325
326     scm:
327         - git-scm:
328             credentials-id: '{ssh-credentials}'
329             refspec: ''
330             branch: '{branch}'
331
332     wrappers:
333         - build-name:
334             name: '$BUILD_NUMBER - POD: $NODE_NAME Scenario: $DEPLOY_SCENARIO'
335
336     builders:
337         - shell:
338             !include-raw-escape: ./fuel-download-artifact.sh
339         - shell:
340             !include-raw-escape: ./fuel-deploy.sh
341
342 ########################
343 # parameter macros
344 ########################
345 - parameter:
346     name: fuel-project-parameter
347     parameters:
348         - string:
349             name: BUILD_DIRECTORY
350             default: $WORKSPACE/build_output
351             description: "Directory where the build artifact will be located upon the completion of the build."
352         - string:
353             name: CACHE_DIRECTORY
354             default: $HOME/opnfv/cache/$INSTALLER_TYPE
355             description: "Directory where the cache to be used during the build is located."
356         - string:
357             name: GS_URL
358             default: artifacts.opnfv.org/$PROJECT{gs-pathname}
359             description: "URL to Google Storage."