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