Refactored docker watchdog code
[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         - euphrates:
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             branch: '{branch}'
49         - 'opnfv-build-ubuntu-defaults'
50         - '{installer}-defaults'
51         - choice:
52             name: FORCE_BUILD
53             choices:
54               - 'false'
55               - 'true'
56             description: "Force build even if there is no changes in fuel repo. Default false"
57         - fuel-project-parameter:
58             gs-pathname: '{gs-pathname}'
59
60     scm:
61         - git-scm
62
63     triggers:
64         - timed: '0 H/4 * * *'
65
66     wrappers:
67         - timeout:
68             timeout: 360
69             fail: true
70
71     builders:
72         - shell:
73             !include-raw-escape: ./fuel-build.sh
74         - shell:
75             !include-raw-escape: ./fuel-upload-artifact.sh
76         - shell:
77             !include-raw-escape: ./fuel-workspace-cleanup.sh
78
79     publishers:
80         - email:
81             recipients: fzhadaev@mirantis.com
82         - email-jenkins-admins-on-failure
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             branch: '{branch}'
95         - 'opnfv-build-ubuntu-defaults'
96         - '{installer}-defaults'
97         - fuel-project-parameter:
98             gs-pathname: '{gs-pathname}'
99
100     scm:
101         - git-scm
102
103     wrappers:
104         - ssh-agent-wrapper
105         - timeout:
106             timeout: 360
107             fail: true
108
109     triggers:
110         - gerrit:
111             server-name: 'gerrit.opnfv.org'
112             trigger-on:
113                 - change-merged-event
114                 - comment-added-contains-event:
115                     comment-contains-value: 'remerge'
116             projects:
117               - project-compare-type: 'ANT'
118                 project-pattern: '{project}'
119                 branches:
120                     - branch-compare-type: 'ANT'
121                       branch-pattern: '**/{branch}'
122                 file-paths:
123                   - compare-type: ANT
124                     pattern: 'ci/**'
125                   - compare-type: ANT
126                     pattern: 'build/**'
127                   - compare-type: ANT
128                     pattern: 'deploy/**'
129                 disable-strict-forbidden-file-verification: 'true'
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             branch: '{branch}'
167         - 'fuel-virtual-defaults':
168             installer: '{installer}'
169         - '{installer}-defaults'
170         - fuel-project-parameter:
171             gs-pathname: '{gs-pathname}'
172     scm:
173         - git-scm
174
175     wrappers:
176         - ssh-agent-wrapper
177
178     triggers:
179         - gerrit:
180             server-name: 'gerrit.opnfv.org'
181             trigger-on:
182                 - change-merged-event
183                 - comment-added-contains-event:
184                     comment-contains-value: 'remerge'
185             projects:
186               - project-compare-type: 'ANT'
187                 project-pattern: '{project}'
188                 branches:
189                     - branch-compare-type: 'ANT'
190                       branch-pattern: '**/{branch}'
191                 file-paths:
192                   - compare-type: ANT
193                     pattern: 'ci/**'
194                   - compare-type: ANT
195                     pattern: 'build/**'
196                   - compare-type: ANT
197                     pattern: 'deploy/**'
198                 disable-strict-forbidden-file-verification: 'true'
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         - email-jenkins-admins-on-failure
216
217 - job-template:
218     name: 'fuel-deploy-generic-daily-{stream}'
219
220     concurrent: true
221
222     disabled: '{obj:disabled}'
223
224     properties:
225         - logrotate-default
226         - throttle:
227             enabled: true
228             max-per-node: 1
229             option: 'project'
230         - build-blocker:
231             use-build-blocker: true
232             blocking-jobs:
233                 - 'fuel-os-.*?-daily-.*'
234                 - 'fuel-deploy-generic-daily-.*'
235             block-level: 'NODE'
236
237     parameters:
238         - project-parameter:
239             project: '{project}'
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."