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