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