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