Merge "joid: Update verify jobs and introduce Multijob and verify phases"
[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-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     concurrent: false
34
35     properties:
36         - throttle:
37             enabled: true
38             max-total: 1
39             max-per-node: 1
40             option: 'project'
41
42     parameters:
43         - project-parameter:
44             project: '{project}'
45         - 'opnfv-build-ubuntu-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         - timed: '0 H/4 * * *'
64
65     wrappers:
66         - timeout:
67             timeout: 360
68             fail: true
69
70     builders:
71         - shell:
72             !include-raw-escape: ./fuel-build.sh
73         - shell:
74             !include-raw-escape: ./fuel-upload-artifact.sh
75         - shell:
76             !include-raw-escape: ./fuel-workspace-cleanup.sh
77
78     publishers:
79         - email:
80             recipients: jonas.bjurel@ericsson.com stefan.k.berg@ericsson.com
81
82 - job-template:
83     name: 'fuel-merge-build-{stream}'
84
85     disabled: '{obj:disabled}'
86
87     concurrent: true
88
89     parameters:
90         - project-parameter:
91             project: '{project}'
92         - gerrit-parameter:
93             branch: '{branch}'
94         - 'opnfv-build-ubuntu-defaults'
95         - '{installer}-defaults'
96         - fuel-project-parameter:
97             gs-pathname: '{gs-pathname}'
98
99     scm:
100         - gerrit-trigger-scm:
101             credentials-id: '{ssh-credentials}'
102             refspec: ''
103             choosing-strategy: 'default'
104
105     wrappers:
106         - ssh-agent-credentials:
107             users:
108                 - '{ssh-credentials}'
109         - timeout:
110             timeout: 360
111             fail: true
112
113     triggers:
114         - gerrit:
115             trigger-on:
116                 - change-merged-event
117                 - comment-added-contains-event:
118                     comment-contains-value: 'remerge'
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
136     builders:
137         - shell:
138             !include-raw-escape: ./fuel-build.sh
139         - shell:
140             !include-raw-escape: ./fuel-upload-artifact.sh
141         - shell:
142             !include-raw-escape: ./fuel-workspace-cleanup.sh
143
144 - job-template:
145     name: 'fuel-merge-deploy-virtual-{stream}'
146
147     disabled: true
148
149     concurrent: true
150
151     properties:
152         - throttle:
153             enabled: true
154             max-total: 2
155             max-per-node: 1
156             option: 'project'
157         - build-blocker:
158             use-build-blocker: true
159             blocking-jobs:
160                 - 'fuel-os-.*?-virtual-daily-.*'
161                 - 'fuel-merge-deploy-virtual-.*'
162             block-level: 'NODE'
163
164     parameters:
165         - project-parameter:
166             project: '{project}'
167         - gerrit-parameter:
168             branch: '{branch}'
169         - 'fuel-virtual-defaults':
170             installer: '{installer}'
171         - '{installer}-defaults'
172         - fuel-project-parameter:
173             gs-pathname: '{gs-pathname}'
174     scm:
175         - gerrit-trigger-scm:
176             credentials-id: '{ssh-credentials}'
177             refspec: ''
178             choosing-strategy: 'default'
179
180     wrappers:
181         - ssh-agent-credentials:
182             users:
183                 - '{ssh-credentials}'
184
185     triggers:
186         - gerrit:
187             trigger-on:
188                 - change-merged-event
189                 - comment-added-contains-event:
190                     comment-contains-value: 'remerge'
191             projects:
192               - project-compare-type: 'ANT'
193                 project-pattern: '{project}'
194                 branches:
195                     - branch-compare-type: 'ANT'
196                       branch-pattern: '**/{branch}'
197                 file-paths:
198                   - compare-type: ANT
199                     pattern: 'ci/**'
200                   - compare-type: ANT
201                     pattern: 'build/**'
202                   - compare-type: ANT
203                     pattern: 'deploy/**'
204                 forbidden-file-paths:
205                   - compare-type: ANT
206                     pattern: 'docs/**'
207             dependency-jobs: 'fuel-merge-build-{stream}'
208
209     builders:
210         - shell:
211             !include-raw-escape: ./fuel-download-artifact.sh
212         - shell:
213             !include-raw-escape: ./fuel-deploy.sh
214         - shell:
215             !include-raw-escape: ./fuel-workspace-cleanup.sh
216
217     publishers:
218         - email:
219             recipients: jonas.bjurel@ericsson.com stefan.k.berg@ericsson.com
220
221 - job-template:
222     name: 'fuel-deploy-generic-daily-{stream}'
223
224     concurrent: true
225
226     disabled: false
227
228     properties:
229         - throttle:
230             enabled: true
231             max-per-node: 1
232             option: 'project'
233         - build-blocker:
234             use-build-blocker: true
235             blocking-jobs:
236                 - 'fuel-os-.*?-daily-.*'
237                 - 'fuel-deploy-generic-daily-.*'
238             block-level: 'NODE'
239
240     parameters:
241         - project-parameter:
242             project: '{project}'
243         - '{installer}-defaults'
244         - string:
245             name: GIT_BASE
246             default: https://gerrit.opnfv.org/gerrit/$PROJECT
247             description: 'Git URL to use on this Jenkins Slave'
248         - string:
249             name: DEPLOY_SCENARIO
250             default: 'os-odl_l2-nofeature-ha'
251         - node:
252             name: SLAVE_NAME
253             description: 'Slave name on Jenkins'
254             allowed-slaves:
255                 - ericsson-pod2
256                 - lf-pod2
257                 - ericsson-pod1
258             default-slaves:
259                 - ericsson-pod2
260         - fuel-project-parameter:
261             gs-pathname: '{gs-pathname}'
262
263     scm:
264         - git-scm:
265             credentials-id: '{ssh-credentials}'
266             refspec: ''
267             branch: '{branch}'
268
269     wrappers:
270         - build-name:
271             name: '$BUILD_NUMBER - POD: $NODE_NAME Scenario: $DEPLOY_SCENARIO'
272
273     builders:
274         - shell:
275             !include-raw-escape: ./fuel-download-artifact.sh
276         - shell:
277             !include-raw-escape: ./fuel-deploy.sh
278
279 ########################
280 # parameter macros
281 ########################
282 - parameter:
283     name: fuel-project-parameter
284     parameters:
285         - string:
286             name: BUILD_DIRECTORY
287             default: $WORKSPACE/build_output
288             description: "Directory where the build artifact will be located upon the completion of the build."
289         - string:
290             name: CACHE_DIRECTORY
291             default: $HOME/opnfv/cache/$INSTALLER_TYPE
292             description: "Directory where the cache to be used during the build is located."
293         - string:
294             name: GS_URL
295             default: artifacts.opnfv.org/$PROJECT{gs-pathname}
296             description: "URL to Google Storage."