Restrict Gerrit Triggers to OPNFV Gerrit Server
[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             credentials-id: '{ssh-credentials}'
61             refspec: ''
62             branch: '{branch}'
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: jonas.bjurel@ericsson.com stefan.k.berg@ericsson.com 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         - gerrit-trigger-scm:
103             credentials-id: '{ssh-credentials}'
104             refspec: ''
105             choosing-strategy: 'default'
106
107     wrappers:
108         - ssh-agent-credentials:
109             users:
110                 - '{ssh-credentials}'
111         - timeout:
112             timeout: 360
113             fail: true
114
115     triggers:
116         - gerrit:
117             server-name: 'gerrit.opnfv.org'
118             trigger-on:
119                 - change-merged-event
120                 - comment-added-contains-event:
121                     comment-contains-value: 'remerge'
122             projects:
123               - project-compare-type: 'ANT'
124                 project-pattern: '{project}'
125                 branches:
126                     - branch-compare-type: 'ANT'
127                       branch-pattern: '**/{branch}'
128                 file-paths:
129                   - compare-type: ANT
130                     pattern: 'ci/**'
131                   - compare-type: ANT
132                     pattern: 'build/**'
133                   - compare-type: ANT
134                     pattern: 'deploy/**'
135                 forbidden-file-paths:
136                   - compare-type: ANT
137                     pattern: 'docs/**'
138
139     builders:
140         - shell:
141             !include-raw-escape: ./fuel-build.sh
142         - shell:
143             !include-raw-escape: ./fuel-upload-artifact.sh
144         - shell:
145             !include-raw-escape: ./fuel-workspace-cleanup.sh
146
147 - job-template:
148     name: 'fuel-merge-deploy-virtual-{stream}'
149
150     disabled: true
151
152     concurrent: true
153
154     properties:
155         - throttle:
156             enabled: true
157             max-total: 2
158             max-per-node: 1
159             option: 'project'
160         - build-blocker:
161             use-build-blocker: true
162             blocking-jobs:
163                 - 'fuel-os-.*?-virtual-daily-.*'
164                 - 'fuel-merge-deploy-virtual-.*'
165             block-level: 'NODE'
166
167     parameters:
168         - project-parameter:
169             project: '{project}'
170         - gerrit-parameter:
171             branch: '{branch}'
172         - 'fuel-virtual-defaults':
173             installer: '{installer}'
174         - '{installer}-defaults'
175         - fuel-project-parameter:
176             gs-pathname: '{gs-pathname}'
177     scm:
178         - gerrit-trigger-scm:
179             credentials-id: '{ssh-credentials}'
180             refspec: ''
181             choosing-strategy: 'default'
182
183     wrappers:
184         - ssh-agent-credentials:
185             users:
186                 - '{ssh-credentials}'
187
188     triggers:
189         - gerrit:
190             server-name: 'gerrit.opnfv.org'
191             trigger-on:
192                 - change-merged-event
193                 - comment-added-contains-event:
194                     comment-contains-value: 'remerge'
195             projects:
196               - project-compare-type: 'ANT'
197                 project-pattern: '{project}'
198                 branches:
199                     - branch-compare-type: 'ANT'
200                       branch-pattern: '**/{branch}'
201                 file-paths:
202                   - compare-type: ANT
203                     pattern: 'ci/**'
204                   - compare-type: ANT
205                     pattern: 'build/**'
206                   - compare-type: ANT
207                     pattern: 'deploy/**'
208                 forbidden-file-paths:
209                   - compare-type: ANT
210                     pattern: 'docs/**'
211             dependency-jobs: 'fuel-merge-build-{stream}'
212
213     builders:
214         - shell:
215             !include-raw-escape: ./fuel-download-artifact.sh
216         - shell:
217             !include-raw-escape: ./fuel-deploy.sh
218         - shell:
219             !include-raw-escape: ./fuel-workspace-cleanup.sh
220
221     publishers:
222         - email:
223             recipients: jonas.bjurel@ericsson.com stefan.k.berg@ericsson.com fzhadaev@mirantis.com
224
225 - job-template:
226     name: 'fuel-deploy-generic-daily-{stream}'
227
228     concurrent: true
229
230     disabled: '{obj:disabled}'
231
232     properties:
233         - throttle:
234             enabled: true
235             max-per-node: 1
236             option: 'project'
237         - build-blocker:
238             use-build-blocker: true
239             blocking-jobs:
240                 - 'fuel-os-.*?-daily-.*'
241                 - 'fuel-deploy-generic-daily-.*'
242             block-level: 'NODE'
243
244     parameters:
245         - project-parameter:
246             project: '{project}'
247         - '{installer}-defaults'
248         - string:
249             name: GIT_BASE
250             default: https://gerrit.opnfv.org/gerrit/$PROJECT
251             description: 'Git URL to use on this Jenkins Slave'
252         - string:
253             name: DEPLOY_SCENARIO
254             default: 'os-odl_l2-nofeature-ha'
255         - node:
256             name: SLAVE_NAME
257             description: 'Slave name on Jenkins'
258             allowed-slaves:
259                 - ericsson-pod2
260                 - lf-pod2
261                 - ericsson-pod1
262             default-slaves:
263                 - ericsson-pod2
264         - fuel-project-parameter:
265             gs-pathname: '{gs-pathname}'
266
267     scm:
268         - git-scm:
269             credentials-id: '{ssh-credentials}'
270             refspec: ''
271             branch: '{branch}'
272
273     wrappers:
274         - build-name:
275             name: '$BUILD_NUMBER - POD: $NODE_NAME Scenario: $DEPLOY_SCENARIO'
276
277     builders:
278         - shell:
279             !include-raw-escape: ./fuel-download-artifact.sh
280         - shell:
281             !include-raw-escape: ./fuel-deploy.sh
282
283 ########################
284 # parameter macros
285 ########################
286 - parameter:
287     name: fuel-project-parameter
288     parameters:
289         - string:
290             name: BUILD_DIRECTORY
291             default: $WORKSPACE/build_output
292             description: "Directory where the build artifact will be located upon the completion of the build."
293         - string:
294             name: CACHE_DIRECTORY
295             default: $HOME/opnfv/cache/$INSTALLER_TYPE
296             description: "Directory where the cache to be used during the build is located."
297         - string:
298             name: GS_URL
299             default: artifacts.opnfv.org/$PROJECT{gs-pathname}
300             description: "URL to Google Storage."