390094e478ca21ca23a08ebad5d2c75f7477b847
[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         - danube:
17             branch: 'stable/{stream}'
18             gs-pathname: '/{stream}'
19             disabled: true
20
21     jobs:
22         - 'fuel-build-daily-{stream}'
23         - 'fuel-merge-build-{stream}'
24         - 'fuel-merge-deploy-virtual-{stream}'
25         - 'fuel-deploy-generic-daily-{stream}'
26
27 ########################
28 # job templates
29 ########################
30 - job-template:
31     name: 'fuel-build-daily-{stream}'
32
33     disabled: '{obj:disabled}'
34
35     concurrent: false
36
37     properties:
38         - logrotate-default
39         - throttle:
40             enabled: true
41             max-total: 1
42             max-per-node: 1
43             option: 'project'
44
45     parameters:
46         - project-parameter:
47             project: '{project}'
48         - gerrit-parameter:
49             branch: '{branch}'
50         - 'opnfv-build-ubuntu-defaults'
51         - '{installer}-defaults'
52         - choice:
53             name: FORCE_BUILD
54             choices:
55               - 'false'
56               - 'true'
57             description: "Force build even if there is no changes in fuel repo. Default false"
58         - fuel-project-parameter:
59             gs-pathname: '{gs-pathname}'
60
61     scm:
62         - git-scm
63
64     triggers:
65         - timed: '0 H/4 * * *'
66
67     wrappers:
68         - timeout:
69             timeout: 360
70             fail: true
71
72     builders:
73         - shell:
74             !include-raw-escape: ./fuel-build.sh
75         - shell:
76             !include-raw-escape: ./fuel-upload-artifact.sh
77         - shell:
78             !include-raw-escape: ./fuel-workspace-cleanup.sh
79
80     publishers:
81         - email:
82             recipients: fzhadaev@mirantis.com
83
84 - job-template:
85     name: 'fuel-merge-build-{stream}'
86
87     disabled: '{obj:disabled}'
88
89     concurrent: true
90
91     parameters:
92         - project-parameter:
93             project: '{project}'
94         - gerrit-parameter:
95             branch: '{branch}'
96         - 'opnfv-build-ubuntu-defaults'
97         - '{installer}-defaults'
98         - fuel-project-parameter:
99             gs-pathname: '{gs-pathname}'
100
101     scm:
102         - git-scm
103
104     wrappers:
105         - ssh-agent-wrapper
106         - timeout:
107             timeout: 360
108             fail: true
109
110     triggers:
111         - gerrit:
112             server-name: 'gerrit.opnfv.org'
113             trigger-on:
114                 - change-merged-event
115                 - comment-added-contains-event:
116                     comment-contains-value: 'remerge'
117             projects:
118               - project-compare-type: 'ANT'
119                 project-pattern: '{project}'
120                 branches:
121                     - branch-compare-type: 'ANT'
122                       branch-pattern: '**/{branch}'
123                 file-paths:
124                   - compare-type: ANT
125                     pattern: 'ci/**'
126                   - compare-type: ANT
127                     pattern: 'build/**'
128                   - compare-type: ANT
129                     pattern: 'deploy/**'
130                 forbidden-file-paths:
131                   - compare-type: ANT
132                     pattern: 'docs/**'
133
134     builders:
135         - shell:
136             !include-raw-escape: ./fuel-build.sh
137         - shell:
138             !include-raw-escape: ./fuel-upload-artifact.sh
139         - shell:
140             !include-raw-escape: ./fuel-workspace-cleanup.sh
141
142 - job-template:
143     name: 'fuel-merge-deploy-virtual-{stream}'
144
145     disabled: true
146
147     concurrent: true
148
149     properties:
150         - logrotate-default
151         - throttle:
152             enabled: true
153             max-total: 2
154             max-per-node: 1
155             option: 'project'
156         - build-blocker:
157             use-build-blocker: true
158             blocking-jobs:
159                 - 'fuel-os-.*?-virtual-daily-.*'
160                 - 'fuel-merge-deploy-virtual-.*'
161             block-level: 'NODE'
162
163     parameters:
164         - project-parameter:
165             project: '{project}'
166         - gerrit-parameter:
167             branch: '{branch}'
168         - 'fuel-virtual-defaults':
169             installer: '{installer}'
170         - '{installer}-defaults'
171         - fuel-project-parameter:
172             gs-pathname: '{gs-pathname}'
173     scm:
174         - git-scm
175
176     wrappers:
177         - ssh-agent-wrapper
178
179     triggers:
180         - gerrit:
181             server-name: 'gerrit.opnfv.org'
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             dependency-jobs: 'fuel-merge-build-{stream}'
203
204     builders:
205         - shell:
206             !include-raw-escape: ./fuel-download-artifact.sh
207         - shell:
208             !include-raw-escape: ./fuel-deploy.sh
209         - shell:
210             !include-raw-escape: ./fuel-workspace-cleanup.sh
211
212     publishers:
213         - email:
214             recipients: fzhadaev@mirantis.com
215
216 - job-template:
217     name: 'fuel-deploy-generic-daily-{stream}'
218
219     concurrent: true
220
221     disabled: '{obj:disabled}'
222
223     properties:
224         - logrotate-default
225         - throttle:
226             enabled: true
227             max-per-node: 1
228             option: 'project'
229         - build-blocker:
230             use-build-blocker: true
231             blocking-jobs:
232                 - 'fuel-os-.*?-daily-.*'
233                 - 'fuel-deploy-generic-daily-.*'
234             block-level: 'NODE'
235
236     parameters:
237         - project-parameter:
238             project: '{project}'
239         - gerrit-parameter:
240             branch: '{branch}'
241         - '{installer}-defaults'
242         - string:
243             name: GIT_BASE
244             default: https://gerrit.opnfv.org/gerrit/$PROJECT
245             description: 'Git URL to use on this Jenkins Slave'
246         - string:
247             name: DEPLOY_SCENARIO
248             default: 'os-odl_l2-nofeature-ha'
249         - node:
250             name: SLAVE_NAME
251             description: 'Slave name on Jenkins'
252             allowed-slaves:
253                 - ericsson-pod2
254                 - lf-pod2
255                 - ericsson-pod1
256             default-slaves:
257                 - ericsson-pod2
258         - fuel-project-parameter:
259             gs-pathname: '{gs-pathname}'
260
261     scm:
262         - git-scm
263
264     wrappers:
265         - build-name:
266             name: '$BUILD_NUMBER - POD: $NODE_NAME Scenario: $DEPLOY_SCENARIO'
267
268     builders:
269         - shell:
270             !include-raw-escape: ./fuel-download-artifact.sh
271         - shell:
272             !include-raw-escape: ./fuel-deploy.sh
273
274 ########################
275 # parameter macros
276 ########################
277 - parameter:
278     name: fuel-project-parameter
279     parameters:
280         - string:
281             name: BUILD_DIRECTORY
282             default: $WORKSPACE/build_output
283             description: "Directory where the build artifact will be located upon the completion of the build."
284         - string:
285             name: CACHE_DIRECTORY
286             default: $HOME/opnfv/cache/$INSTALLER_TYPE
287             description: "Directory where the cache to be used during the build is located."
288         - string:
289             name: GS_URL
290             default: artifacts.opnfv.org/$PROJECT{gs-pathname}
291             description: "URL to Google Storage."